BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

store.php 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <?php
  2. #declare(strict_types=1);
  3. $UserID = $LoggedUser['ID'];
  4. $PermID = $LoggedUser['PermissionID'];
  5. if (!$LoggedUser['DisablePoints']) {
  6. $PointsRate = 0;
  7. $getTorrents = $DB->prepared_query("
  8. SELECT um.BonusPoints,
  9. COUNT(DISTINCT x.fid) AS Torrents,
  10. SUM(t.Size) AS Size,
  11. SUM(xs.seedtime) AS Seedtime,
  12. SUM(t.Seeders) AS Seeders
  13. FROM users_main AS um
  14. LEFT JOIN users_info AS i on um.ID = i.UserID
  15. LEFT JOIN xbt_files_users AS x ON um.ID=x.uid
  16. LEFT JOIN torrents AS t ON t.ID=x.fid
  17. LEFT JOIN xbt_snatched AS xs ON x.uid=xs.uid AND x.fid=xs.fid
  18. WHERE
  19. um.ID = ?
  20. AND um.Enabled = '1'
  21. AND x.active = 1
  22. AND x.completed = 0
  23. AND x.Remaining = 0
  24. GROUP BY um.ID", $UserID);
  25. # BASE BONUS POINTS RATE
  26. # See /wiki.php?action=article&name=bonuspoints
  27. if ($DB->has_results()) {
  28. list($BonusPoints, $NumTorr, $TSize, $TTime, $TSeeds) = $DB->next_record();
  29. $ENV = ENV::go();
  30. $PointsRate = ($ENV->BP_COEFF + (0.55*($NumTorr * (sqrt(($TSize/$NumTorr)/1073741824) * pow(1.5, ($TTime/$NumTorr)/(24*365))))) / (max(1, sqrt(($TSeeds/$NumTorr)+4)/3)))**0.95;
  31. }
  32. $PointsRate = intval(max(min($PointsRate, ($PointsRate * 2) - ($BonusPoints/1440)), 0));
  33. $PointsPerHour = number_format($PointsRate) . " ".BONUS_POINTS."/hour";
  34. $PointsPerDay = number_format($PointsRate*24) . " ".BONUS_POINTS."/day";
  35. } else {
  36. $PointsPerHour = "0 ".BONUS_POINTS."/hour";
  37. $PointsPerDay = BONUS_POINTS." disabled";
  38. }
  39. // Include the header
  40. View::show_header('Store');
  41. ?>
  42. <div>
  43. <div class="header">
  44. <h2>Store</h2>
  45. </div>
  46. <div class="box">
  47. <h3 id="lists" class="float_left">
  48. You have
  49. <?=number_format($LoggedUser['BonusPoints'])?>
  50. <?=BONUS_POINTS?>
  51. to spend
  52. </h3>
  53. <h3 id="lists" class="float_right">You're making <?=$PointsPerHour?> (<?=$PointsPerDay?>)</h3>
  54. <table width="100%" class="store_table">
  55. <tr class="colhead">
  56. <td style="width: 100px;">Item</td>
  57. <td style="width: 100px;">Cost</td>
  58. <td style="width: 400px;">Description</td>
  59. </tr>
  60. <!-- Upload: 10^1 -->
  61. <tr class="row">
  62. <td class="nobr">
  63. <a href="store.php?item=upload_1">0.1 GiB Upload</a>
  64. </td>
  65. <td class="nobr">
  66. 15 <?=BONUS_POINTS?>
  67. </td>
  68. <td class="nobr">
  69. Purchase 0.1 GiB of upload
  70. </td>
  71. </tr>
  72. <!-- Upload: 10^2 -->
  73. <tr class="row">
  74. <td class="nobr">
  75. <a href="store.php?item=upload_10">1 GiB Upload</a>
  76. </td>
  77. <td class="nobr">
  78. 150 <?=BONUS_POINTS?>
  79. </td>
  80. <td class="nobr">
  81. Purchase 1 GiB of upload
  82. </td>
  83. </tr>
  84. <!-- Upload: 10^3 -->
  85. <tr class="row">
  86. <td class="nobr">
  87. <a href="store.php?item=upload_100">10 GiB Upload</a>
  88. </td>
  89. <td class="nobr">
  90. 1,500 <?=BONUS_POINTS?>
  91. </td>
  92. <td class="nobr">
  93. Purchase 10 GiB of upload
  94. </td>
  95. </tr>
  96. <!-- Upload: 10^4 -->
  97. <tr class="row">
  98. <td class="nobr">
  99. <a href="store.php?item=upload_1000">100 GiB Upload</a>
  100. </td>
  101. <td class="nobr">
  102. 15,000 <?=BONUS_POINTS?>
  103. </td>
  104. <td class="nobr">
  105. Purchase 100 GiB of upload
  106. </td>
  107. </tr>
  108. <!-- Bonus Points: 10^1 -->
  109. <tr class="row">
  110. <td class="nobr">
  111. <a href="store.php?item=points_1">10 <?=BONUS_POINTS?></a>
  112. </td>
  113. <td class="nobr">
  114. 0.15 GiB Upload
  115. </td>
  116. <td class="nobr">
  117. Purchase 10 <?=BONUS_POINTS?>
  118. </td>
  119. </tr>
  120. <!-- Bonus Points: 10^2 -->
  121. <tr class="row">
  122. <td class="nobr">
  123. <a href="store.php?item=points_10">100 <?=BONUS_POINTS?></a>
  124. </td>
  125. <td class="nobr">
  126. 1.5 GiB Upload
  127. </td>
  128. <td class="nobr">
  129. Purchase 100 <?=BONUS_POINTS?>
  130. </td>
  131. </tr>
  132. <!-- Bonus Points: 10^3 -->
  133. <tr class="row">
  134. <td class="nobr">
  135. <a href="store.php?item=points_100">1,000 <?=BONUS_POINTS?></a>
  136. </td>
  137. <td class="nobr">
  138. 15 GiB Upload
  139. </td>
  140. <td class="nobr">
  141. Purchase 1,000 <?=BONUS_POINTS?>
  142. </td>
  143. </tr>
  144. <!-- Bonus Points: 10^4 -->
  145. <tr class="row">
  146. <td class="nobr">
  147. <a href="store.php?item=points_1000">10,000 <?=BONUS_POINTS?></a>
  148. </td>
  149. <td class="nobr">
  150. 150 GiB Upload
  151. </td>
  152. <td class="nobr">
  153. Purchase 10,000 <?=BONUS_POINTS?>
  154. </td>
  155. </tr>
  156. <!-- Freeleech Token -->
  157. <tr class="row">
  158. <td class="nobr">
  159. <a href="store.php?item=token">Freeleech Token</a>
  160. </td>
  161. <td class="nobr">
  162. 1,000 <?=BONUS_POINTS?>
  163. </td>
  164. <td class="nobr">
  165. Purchase a freeleech token for yourself
  166. </td>
  167. </tr>
  168. <!-- Freeleechize -->
  169. <tr class="row">
  170. <td class="nobr">
  171. <a href="store.php?item=freeleechize">Freeleechize</a>
  172. </td>
  173. <td class="nobr">
  174. 2,000 <?=BONUS_POINTS?>
  175. </td>
  176. <td class="nobr">
  177. Make a torrent freeleech (for everyone) for 24 hours
  178. </td>
  179. </tr>
  180. <!-- Custom Title -->
  181. <tr class="row">
  182. <td class="nobr">
  183. <a href="store.php?item=title">Custom Title</a>
  184. </td>
  185. <td class="nobr">
  186. 5,000 <?=BONUS_POINTS?>
  187. </td>
  188. <td class="nobr">
  189. Purchase a custom title
  190. </td>
  191. </tr>
  192. <!-- Invite -->
  193. <tr class="row">
  194. <td class="nobr">
  195. <a href="store.php?item=invite">Invite</a>
  196. </td>
  197. <td class="nobr">
  198. 10,000 <?=BONUS_POINTS?>
  199. </td>
  200. <td class="nobr">
  201. Purchase an invite for your friend
  202. </td>
  203. </tr>
  204. <!-- Freeleech Pool -->
  205. <tr class="row">
  206. <td class="nobr">
  207. <a href="store.php?item=freeleechpool">Freeleech Pool</a>
  208. </td>
  209. <td class="nobr">
  210. </td>
  211. <td class="nobr">
  212. Make a donation to the Freeleech Pool
  213. </td>
  214. </tr>
  215. </table>
  216. <br />
  217. <h4>Badges</h4>
  218. <table width="100%" class="store_table">
  219. <tr class="colhead">
  220. <td style="width: 100px;">Badge</td>
  221. <td style="width: 100px;">Cost</td>
  222. <td style="width: 400px;">Description</td>
  223. </tr>
  224. <?php
  225. $DB->prepared_query("
  226. SELECT ID AS BadgeID, Name, Description
  227. FROM badges
  228. WHERE ID IN (40, 41, 42, 43, 44, 45, 46, 47, 48)
  229. ");
  230. if ($DB->has_results()) {
  231. $Badges = $DB->to_array();
  232. foreach ($Badges as $ID => $Badge) { ?>
  233. <tr class="row">
  234. <?php
  235. if (($ID === 0 || Badges::has_badge($LoggedUser['ID'], $Badges[$ID-1]['BadgeID']))
  236. && !Badges::has_badge($LoggedUser['ID'], $Badge['BadgeID'])) {
  237. $BadgeText = '<a href="store.php?item=badge&badge='.$Badge['BadgeID'].'">'.$Badge['Name'].'</a>';
  238. } else {
  239. $BadgeText = $Badge['Name'];
  240. } ?>
  241. <td class="nobr">
  242. <?=Badges::display_badge($Badge['BadgeID'])?>
  243. <span class="badge_name" style="margin-left: 10px;"><?=$BadgeText?></span>
  244. </td>
  245. <td class="nobr">
  246. <?=$Badge['Description']?>
  247. </td>
  248. </tr>
  249. <?php
  250. }
  251. } ?>
  252. </table>
  253. </div>
  254. </div>
  255. <?php View::show_footer();