Oppaitime'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.

notify_handle.php 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?
  2. if (!check_perms('site_torrents_notify')) {
  3. error(403);
  4. }
  5. authorize();
  6. $FormID = '';
  7. $ArtistList = '';
  8. $TagList = '';
  9. $NotTagList = '';
  10. $CategoryList = '';
  11. $MediaList = '';
  12. $Users = '';
  13. $HasFilter = false;
  14. if ($_POST['formid'] && is_number($_POST['formid'])) {
  15. $FormID = $_POST['formid'];
  16. }
  17. if ($_POST['artists'.$FormID]) {
  18. $Artists = explode(',', $_POST['artists'.$FormID]);
  19. $ParsedArtists = [];
  20. foreach ($Artists as $Artist) {
  21. if (trim($Artist) != '') {
  22. $ParsedArtists[] = db_string(trim($Artist));
  23. }
  24. }
  25. if (count($ParsedArtists) > 0) {
  26. $ArtistList = '|'.implode('|', $ParsedArtists).'|';
  27. $HasFilter = true;
  28. }
  29. }
  30. if ($_POST['excludeva'.$FormID]) {
  31. $ExcludeVA = '1';
  32. $HasFilter = true;
  33. } else {
  34. $ExcludeVA = '0';
  35. }
  36. if ($_POST['newgroupsonly'.$FormID]) {
  37. $NewGroupsOnly = '1';
  38. $HasFilter = true;
  39. } else {
  40. $NewGroupsOnly = '0';
  41. }
  42. if ($_POST['tags'.$FormID]) {
  43. $TagList = '|';
  44. $Tags = explode(',', $_POST['tags'.$FormID]);
  45. foreach ($Tags as $Tag) {
  46. $TagList.=db_string(trim($Tag)).'|';
  47. }
  48. $HasFilter = true;
  49. }
  50. if ($_POST['nottags'.$FormID]) {
  51. $NotTagList = '|';
  52. $Tags = explode(',', $_POST['nottags'.$FormID]);
  53. foreach ($Tags as $Tag) {
  54. $NotTagList.=db_string(trim($Tag)).'|';
  55. }
  56. $HasFilter = true;
  57. }
  58. if ($_POST['categories'.$FormID]) {
  59. $CategoryList = '|';
  60. foreach ($_POST['categories'.$FormID] as $Category) {
  61. $CategoryList.=db_string(trim($Category)).'|';
  62. }
  63. $HasFilter = true;
  64. }
  65. if ($_POST['media'.$FormID]) {
  66. $MediaList = '|';
  67. foreach ($_POST['media'.$FormID] as $Medium) {
  68. $MediaList.=db_string(trim($Medium)).'|';
  69. }
  70. $HasFilter = true;
  71. }
  72. if ($_POST['users'.$FormID]) {
  73. $Usernames = explode(',', $_POST['users'.$FormID]);
  74. $EscapedUsernames = [];
  75. foreach ($Usernames as $Username) {
  76. $EscapedUsernames[] = db_string(trim($Username));;
  77. }
  78. $DB->query("
  79. SELECT ID, Paranoia
  80. FROM users_main
  81. WHERE Username IN ('" . implode("', '", $EscapedUsernames) . "')
  82. AND ID != $LoggedUser[ID]");
  83. while (list($UserID, $Paranoia) = $DB->next_record()) {
  84. $Paranoia = unserialize($Paranoia);
  85. if (!in_array('notifications', $Paranoia)) {
  86. $Users .= '|' . $UserID . '|';
  87. $HasFilter = true;
  88. }
  89. }
  90. }
  91. if (!$HasFilter) {
  92. $Err = 'You must add at least one criterion to filter by';
  93. } elseif (!$_POST['label'.$FormID] && !$_POST['id'.$FormID]) {
  94. $Err = 'You must add a label for the filter set';
  95. }
  96. if ($Err) {
  97. error($Err);
  98. header('Location: user.php?action=notify');
  99. die();
  100. }
  101. $ArtistList = str_replace('||', '|', $ArtistList);
  102. $TagList = str_replace('||', '|', $TagList);
  103. $NotTagList = str_replace('||', '|', $NotTagList);
  104. $Users = str_replace('||', '|', $Users);
  105. if ($_POST['id'.$FormID] && is_number($_POST['id'.$FormID])) {
  106. $DB->query("
  107. UPDATE users_notify_filters
  108. SET
  109. Artists='$ArtistList',
  110. ExcludeVA='$ExcludeVA',
  111. NewGroupsOnly='$NewGroupsOnly',
  112. Tags='$TagList',
  113. NotTags='$NotTagList',
  114. Categories='$CategoryList',
  115. Media='$MediaList',
  116. Users ='$Users'
  117. WHERE ID='".$_POST['id'.$FormID]."'
  118. AND UserID='$LoggedUser[ID]'");
  119. } else {
  120. $DB->query("
  121. INSERT INTO users_notify_filters
  122. (UserID, Label, Artists, ExcludeVA, NewGroupsOnly, Tags, NotTags, Categories, Media, Users)
  123. VALUES
  124. ('$LoggedUser[ID]','".db_string($_POST['label'.$FormID])."','$ArtistList','$ExcludeVA','$NewGroupsOnly','$TagList','$NotTagList','$CategoryList','$MediaList','$Users')");
  125. }
  126. $Cache->delete_value('notify_filters_'.$LoggedUser['ID']);
  127. if (($Notify = $Cache->get_value('notify_artists_'.$LoggedUser['ID'])) !== false && $Notify['ID'] == $_POST['id'.$FormID]) {
  128. $Cache->delete_value('notify_artists_'.$LoggedUser['ID']);
  129. }
  130. header('Location: user.php?action=notify');
  131. ?>