PageRenderTime 29ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/sections/torrents/delete.php

https://github.com/gazelle-i18n/gazelle
PHP | 281 lines | 271 code | 9 blank | 1 comment | 22 complexity | d69d2c3849f040984cf3e164725cbe8b MD5 | raw file
  1. <?
  2. $TorrentID = $_GET['torrentid'];
  3. if (!$TorrentID || !is_number($TorrentID)) { error(404); }
  4. $DB->query("SELECT t.UserID, t.Time, COUNT(x.uid) FROM torrents AS t LEFT JOIN xbt_snatched AS x ON x.fid=t.ID WHERE t.ID=".$TorrentID." GROUP BY t.UserID");
  5. if($DB->record_count() < 1) {
  6. error('Torrent already deleted.');
  7. }
  8. list($UserID, $Time, $Snatches) = $DB->next_record();
  9. if ($LoggedUser['ID']!=$UserID && !check_perms('torrents_delete')) {
  10. error(403);
  11. }
  12. if(isset($_SESSION['logged_user']['multi_delete']) && $_SESSION['logged_user']['multi_delete']>=3 && !check_perms('torrents_delete_fast')) {
  13. error('You have recently deleted 3 torrents, please contact a staff member if you need to delete more.');
  14. }
  15. if(time_ago($Time) > 3600*24*7 && !check_perms('torrents_delete')) { // Should this be torrents_delete or torrents_delete_fast?
  16. error('You can no longer delete this torrent as it has been uploaded for over a week with no problems. If you now think there is a problem, please report it instead.');
  17. }
  18. if($Snatches > 4 && !check_perms('torrents_delete')) { // Should this be torrents_delete or torrents_delete_fast?
  19. error('You can no longer delete this torrent as it has been snatched by 5 or more users. If you believe there is a problem with the torrent please report it instead.');
  20. }
  21. show_header('Delete torrent', 'reportsv2');
  22. ?>
  23. <div class="thin center">
  24. <div class="box" style="width:600px; margin:0px auto;">
  25. <div class="head colhead">
  26. Delete torrent
  27. </div>
  28. <div class="pad">
  29. <form action="torrents.php" method="post">
  30. <input type="hidden" name="action" value="takedelete" />
  31. <input type="hidden" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
  32. <input type="hidden" name="torrentid" value="<?=$TorrentID?>" />
  33. <strong>Reason: </strong>
  34. <select name="reason">
  35. <option value="Dead">Dead</option>
  36. <option value="Dupe">Dupe</option>
  37. <option value="Trumped">Trumped</option>
  38. <option value="Rules Broken">Rules broken</option>
  39. <option value="" selected="selected">Other</option>
  40. </select>
  41. &nbsp;
  42. <strong>Extra info: </strong>
  43. <input type="text" name="extra" size="30" />
  44. <input value="Delete" type="submit" />
  45. </form>
  46. </div>
  47. </div>
  48. </div>
  49. <?
  50. if(check_perms('admin_reports')) {
  51. ?>
  52. <div id="all_reports" style="width: 80%; margin-left: auto; margin-right: auto">
  53. <?
  54. require(SERVER_ROOT.'/sections/reportsv2/array.php');
  55. require(SERVER_ROOT.'/classes/class_text.php');
  56. $Text = NEW TEXT;
  57. $ReportID = 0;
  58. $DB->query("SELECT
  59. tg.Name,
  60. tg.ID,
  61. CASE COUNT(ta.GroupID)
  62. WHEN 1 THEN aa.ArtistID
  63. WHEN 0 THEN '0'
  64. ELSE '0'
  65. END AS ArtistID,
  66. CASE COUNT(ta.GroupID)
  67. WHEN 1 THEN aa.Name
  68. WHEN 0 THEN ''
  69. ELSE 'Various Artists'
  70. END AS ArtistName,
  71. tg.Year,
  72. tg.CategoryID,
  73. t.Time,
  74. t.Remastered,
  75. t.RemasterTitle,
  76. t.RemasterYear,
  77. t.Media,
  78. t.Format,
  79. t.Encoding,
  80. t.Size,
  81. t.HasLog,
  82. t.LogScore,
  83. t.UserID AS UploaderID,
  84. uploader.Username
  85. FROM torrents AS t
  86. LEFT JOIN torrents_group AS tg ON tg.ID=t.GroupID
  87. LEFT JOIN torrents_artists AS ta ON ta.GroupID=tg.ID AND ta.Importance='1'
  88. LEFT JOIN artists_alias AS aa ON aa.AliasID=ta.AliasID
  89. LEFT JOIN users_main AS uploader ON uploader.ID=t.UserID
  90. WHERE t.ID=".$TorrentID);
  91. if($DB->record_count() < 1) {
  92. die();
  93. }
  94. list($GroupName, $GroupID, $ArtistID, $ArtistName, $Year, $CategoryID, $Time, $Remastered, $RemasterTitle,
  95. $RemasterYear, $Media, $Format, $Encoding, $Size, $HasLog, $LogScore, $UploaderID, $UploaderName) = $DB->next_record();
  96. $Type = 'dupe'; //hardcoded default
  97. if (array_key_exists($Type, $Types[$CategoryID])) {
  98. $ReportType = $Types[$CategoryID][$Type];
  99. } else if(array_key_exists($Type,$Types['master'])) {
  100. $ReportType = $Types['master'][$Type];
  101. } else {
  102. //There was a type but it wasn't an option!
  103. $Type = 'other';
  104. $ReportType = $Types['master']['other'];
  105. }
  106. if ($ArtistID == 0 && empty($ArtistName)) {
  107. $RawName = $GroupName.($Year ? " ($Year)" : "")." [$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "").($HasLog ? " ($LogScore %)" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  108. $LinkName = "<a href='torrents.php?id=$GroupID'>$GroupName".($Year ? " ($Year)" : "")."</a> <a href='torrents.php?torrentid=$TorrentID'> [$Format/$Encoding/$Media]".($Remastered ? " &lt;$RemasterTitle - $RemasterYear&gt;" : "")."</a> ".($HasLog ? " <a href='torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'>(Log: $LogScore %)</a>" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  109. $BBName = "[url=torrents.php?id=$GroupID]$GroupName".($Year ? " ($Year)" : "")."[/url] [url=torrents.php?torrentid=$TorrentID][$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "")."[/url] ".($HasLog ? " [url=torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'](Log: $LogScore %)[/url]" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  110. } elseif ($ArtistID == 0 && $ArtistName == 'Various Artists') {
  111. $RawName = "Various Artists - $GroupName".($Year ? " ($Year)" : "")." [$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "").($HasLog ? " ($LogScore %)" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  112. $LinkName = "Various Artists - <a href='torrents.php?id=$GroupID'>$GroupName".($Year ? " ($Year)" : "")."</a> <a href='torrents.php?torrentid=$TorrentID'> [$Format/$Encoding/$Media]".($Remastered ? " &lt;$RemasterTitle - $RemasterYear&gt;" : "")."</a> ".($HasLog ? " <a href='torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'>(Log: $LogScore %)</a>" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  113. $BBName = "Various Artists - [url=torrents.php?id=$GroupID]$GroupName".($Year ? " ($Year)" : "")."[/url] [url=torrents.php?torrentid=$TorrentID][$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "")."[/url] ".($HasLog ? " [url=torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'](Log: $LogScore %)[/url]" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  114. } else {
  115. $RawName = "$ArtistName - $GroupName".($Year ? " ($Year)" : "")." [$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "").($HasLog ? " ($LogScore %)" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  116. $LinkName = "<a href='artist.php?id=$ArtistID'>$ArtistName</a> - <a href='torrents.php?id=$GroupID'>$GroupName".($Year ? " ($Year)" : "")."</a> <a href='torrents.php?torrentid=$TorrentID'> [$Format/$Encoding/$Media]".($Remastered ? " &lt;$RemasterTitle - $RemasterYear&gt;" : "")."</a> ".($HasLog ? " <a href='torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'>(Log: $LogScore %)</a>" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  117. $BBName = "[url=artist.php?id=$ArtistID]".$ArtistName."[/url] - [url=torrents.php?id=$GroupID]$GroupName".($Year ? " ($Year)" : "")."[/url] [url=torrents.php?torrentid=$TorrentID][$Format/$Encoding/$Media]".($Remastered ? " <$RemasterTitle - $RemasterYear>" : "")."[/url] ".($HasLog ? " [url=torrents.php?action=viewlog&amp;torrentid=$TorrentID&amp;groupid=$GroupID'](Log: $LogScore %)[/url]" : "")." (".number_format($Size/(1024*1024), 2)." MB)";
  118. }
  119. ?>
  120. <div id="report<?=$ReportID?>">
  121. <form id="report_form<?=$ReportID?>" action="reports.php" method="post">
  122. <?
  123. /*
  124. * Some of these are for takeresolve, some for the javascript.
  125. */
  126. ?>
  127. <div>
  128. <input type="hidden" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
  129. <input type="hidden" id="newreportid" name="newreportid" value="<?=$ReportID?>" />
  130. <input type="hidden" id="reportid<?=$ReportID?>" name="reportid" value="<?=$ReportID?>" />
  131. <input type="hidden" id="torrentid<?=$ReportID?>" name="torrentid" value="<?=$TorrentID?>" />
  132. <input type="hidden" id="uploader<?=$ReportID?>" name="uploader" value="<?=$UploaderName?>" />
  133. <input type="hidden" id="uploaderid<?=$ReportID?>" name="uploaderid" value="<?=$UploaderID?>" />
  134. <input type="hidden" id="reporterid<?=$ReportID?>" name="reporterid" value="<?=$ReporterID?>" />
  135. <input type="hidden" id="raw_name<?=$ReportID?>" name="raw_name" value="<?=$RawName?>" />
  136. <input type="hidden" id="type<?=$ReportID?>" name="type" value="<?=$Type?>" />
  137. <input type="hidden" id="categoryid<?=$ReportID?>" name="categoryid" value="<?=$CategoryID?>" />
  138. <input type="hidden" id="pm_type<?=$ReportID?>" name="pm_type" value="Uploader" />
  139. <input type="hidden" id="from_delete<?=$ReportID?>" name="from_delete" value="<?=$GroupID?>" />
  140. </div>
  141. <table cellpadding="5">
  142. <tr>
  143. <td class="label">Torrent:</td>
  144. <td colspan="3">
  145. <? if(!$GroupID) { ?>
  146. <a href="log.php?search=Torrent+<?=$TorrentID?>"><?=$TorrentID?></a> (Deleted)
  147. <? } else {?>
  148. <?=$LinkName?>
  149. <a href="torrents.php?action=download&amp;id=<?=$TorrentID?>&amp;authkey=<?=$LoggedUser['AuthKey']?>&amp;torrent_pass=<?=$LoggedUser['torrent_pass']?>" title="Download">[DL]</a>
  150. uploaded by <a href="user.php?id=<?=$UploaderID?>"><?=$UploaderName?></a> <?=time_diff($Time)?>
  151. <br />
  152. <? $DB->query("SELECT r.ID
  153. FROM reportsv2 AS r
  154. LEFT JOIN torrents AS t ON t.ID=r.TorrentID
  155. WHERE r.Status != 'Resolved'
  156. AND t.GroupID=$GroupID");
  157. $GroupOthers = ($DB->record_count());
  158. if($GroupOthers > 0) { ?>
  159. <div style="text-align: right;">
  160. <a href="reportsv2.php?view=group&amp;id=<?=$GroupID?>">There <?=(($GroupOthers > 1) ? "are $GroupOthers reports" : "is 1 other report")?> for torrent(s) in this group</a>
  161. </div>
  162. <? $DB->query("SELECT t.UserID
  163. FROM reportsv2 AS r
  164. JOIN torrents AS t ON t.ID=r.TorrentID
  165. WHERE r.Status != 'Resolved'
  166. AND t.UserID=$UploaderID");
  167. $UploaderOthers = ($DB->record_count());
  168. if($UploaderOthers > 0) { ?>
  169. <div style="text-align: right;">
  170. <a href="reportsv2.php?view=uploader&amp;id=<?=$UploaderID?>">There <?=(($UploaderOthers > 1) ? "are $UploaderOthers reports" : "is 1 other report")?> for torrent(s) uploaded by this user</a>
  171. </div>
  172. <? }
  173. $DB->query("SELECT DISTINCT req.ID,
  174. req.FillerID,
  175. um.Username,
  176. req.TimeFilled
  177. FROM requests AS req
  178. LEFT JOIN torrents AS t ON t.GroupID=req.TorrentID
  179. LEFT JOIN reportsv2 AS rep ON rep.TorrentID=t.ID
  180. JOIN users_main AS um ON um.ID=req.FillerID
  181. WHERE rep.Status != 'Resolved'
  182. AND req.TorrentID=$TorrentID");
  183. $Requests = ($DB->record_count());
  184. if($Requests > 0) {
  185. while(list($RequestID, $FillerID, $FillerName, $FilledTime) = $DB->next_record()) {
  186. ?>
  187. <div style="text-align: right;">
  188. <a href="user.php?id=<?=$FillerID?>"><?=$FillerName?></a> used a torrent from this group to fill <a href="requests.php?action=viewrequest&amp;id=<?=$RequestID?>">this request</a> <?=time_diff($FilledTime)?>
  189. </div>
  190. <? }
  191. }
  192. }
  193. }
  194. ?>
  195. </td>
  196. </tr>
  197. <? // END REPORTED STUFF :|: BEGIN MOD STUFF ?>
  198. <tr>
  199. <td class="label">
  200. <a href="javascript:Load('<?=$ReportID?>')">Resolve</a>
  201. </td>
  202. <td colspan="3">
  203. <select name="resolve_type" id="resolve_type<?=$ReportID?>" onchange="ChangeResolve(<?=$ReportID?>)">
  204. <?
  205. $TypeList = $Types['master'] + $Types[$CategoryID];
  206. $Priorities = array();
  207. foreach ($TypeList as $Key => $Value) {
  208. $Priorities[$Key] = $Value['priority'];
  209. }
  210. array_multisort($Priorities, SORT_ASC, $TypeList);
  211. foreach($TypeList as $IType => $Data) {
  212. ?>
  213. <option value="<?=$IType?>"<?=(($Type == $IType)?' selected="selected"':'')?>><?=$Data['title']?></option>
  214. <? } ?>
  215. </select>
  216. <span id="options<?=$ReportID?>">
  217. <span title="Delete Torrent?">
  218. <strong>Delete</strong>
  219. <input type="checkbox" name="delete" id="delete<?=$ReportID?>"<?=($ReportType['resolve_options']['delete']?' checked="checked"':'')?>>
  220. </span>
  221. <span title="Warning length in weeks">
  222. <strong>Warning</strong>
  223. <select name="warning" id="warning<?=$ReportID?>">
  224. <? for($i = 0; $i < 9; $i++) { ?>
  225. <option value="<?=$i?>"<?=(($ReportType['resolve_options']['warn'] == $i)?' selected="selected"':'')?>><?=$i?></option>
  226. <? } ?>
  227. </select>
  228. </span>
  229. <span title="Remove upload privileges?">
  230. <strong>Upload</strong>
  231. <input type="checkbox" name="upload" id="upload<?=$ReportID?>"<?=($ReportType['resolve_options']['upload']?' checked="checked"':'')?>>
  232. </span>
  233. </span>
  234. </td>
  235. </tr>
  236. <tr>
  237. <td class="label">PM Uploader</td>
  238. <td colspan="3">
  239. <span title="Appended to the regular message unless using send now.">
  240. <textarea name="uploader_pm" id="uploader_pm<?=$ReportID?>" cols="50" rows="1"></textarea>
  241. </span>
  242. <input type="button" value="Send Now" onclick="SendPM(<?=$ReportID?>)" />
  243. </td>
  244. </tr>
  245. <tr>
  246. <td class="label"><strong>Extra</strong> Log Message:</td>
  247. <td>
  248. <input type="text" name="log_message" id="log_message<?=$ReportID?>" size="40" />
  249. </td>
  250. <td class="label"><strong>Extra</strong> Staff Notes:</td>
  251. <td>
  252. <input type="text" name="admin_message" id="admin_message<?=$ReportID?>" size="40" />
  253. </td>
  254. </tr>
  255. <tr>
  256. <td colspan="4" style="text-align: center;">
  257. <input type="button" value="Submit" onclick="TakeResolve(<?=$ReportID?>);" />
  258. </td>
  259. </tr>
  260. </table>
  261. </form>
  262. <br />
  263. </div>
  264. </div>
  265. <?
  266. }
  267. show_footer();
  268. ?>