MyList Status Bar

UserScript for adding status bar to AniDB MyList page.

当前为 2019-05-11 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name MyList Status Bar
  3. // @version 3.0
  4. // @author wiidat
  5. // @description UserScript for adding status bar to AniDB MyList page.
  6. // @license GPL-3.0
  7. // @include http://anidb.net/perl-bin/animedb.pl?*show=mylist*
  8. // @include https://anidb.net/perl-bin/animedb.pl?*show=mylist*
  9. // @exclude http://anidb.net/perl-bin/animedb.pl?*show=mylist*do=edit.state*
  10. // @exclude http://anidb.net/perl-bin/animedb.pl?*show=mylist*do=cmp*
  11. // @exclude http://anidb.net/perl-bin/animedb.pl?*show=mylist*do=mch*
  12. // @exclude https://anidb.net/perl-bin/animedb.pl?*show=mylist*do=edit.state*
  13. // @exclude https://anidb.net/perl-bin/animedb.pl?*show=mylist*do=cmp*
  14. // @exclude https://anidb.net/perl-bin/animedb.pl?*show=mylist*do=mch*
  15. // @grant none
  16. // @icon http://static.anidb.net/favicon.ico
  17. // @homepageURL https://github.com/wiidat/MyList-Status-Bar
  18. // @namespace wiidat
  19. // ==/UserScript==
  20.  
  21. var url = window.location.href;
  22.  
  23. if (url.indexOf("show=mylist") > -1 && url.indexOf("show=mylist&do=add") == -1) {
  24. var list_url = '//anidb.net/perl-bin/animedb.pl?show=mylist';
  25. function getUrlVars() {
  26. var vars = {
  27. };
  28. var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
  29. vars[key] = value;
  30. });
  31. return vars;
  32. }
  33. var user_id = parseInt(getUrlVars() ['uid']);
  34. var char_id = getUrlVars() ['char'];
  35. var page_id = parseInt(getUrlVars() ['page']);
  36. var liststate_watching = parseInt(getUrlVars() ['liststate.watching']); //Currently Watching
  37. var liststate_completed = parseInt(getUrlVars() ['liststate.completed']); //Completed
  38. var liststate_stalled = parseInt(getUrlVars() ['liststate.stalled']); //On Hold
  39. var liststate_dropped = parseInt(getUrlVars() ['liststate.dropped']); //Dropped
  40. var liststate_collecting = parseInt(getUrlVars() ['liststate.collecting']); //Plan to Watch
  41. var liststate_unknown = parseInt(getUrlVars() ['liststate.unknown']); //Recently Added
  42. if (isNaN(user_id)) {
  43. var user_url = ''
  44. } else {
  45. var user_url = '&uid=' + user_id
  46. }
  47. if (typeof char_id === 'undefined') {
  48. var char_url = ''
  49. } else {
  50. var char_url = '&char=' + char_id
  51. }
  52. if (isNaN(page_id)) {
  53. page_id = 0
  54. }
  55. var page_back_id = page_id - 1;
  56. var page_next_id = page_id + 1;
  57. if (isNaN(liststate_watching)) {
  58. liststate_watching = 0
  59. }
  60. if (isNaN(liststate_completed)) {
  61. liststate_completed = 0
  62. }
  63. if (isNaN(liststate_stalled)) {
  64. liststate_stalled = 0
  65. }
  66. if (isNaN(liststate_dropped)) {
  67. liststate_dropped = 0
  68. }
  69. if (isNaN(liststate_collecting)) {
  70. liststate_collecting = 0
  71. }
  72. if (isNaN(liststate_unknown)) {
  73. liststate_unknown = 0
  74. }
  75. if (liststate_watching == 0) {
  76. var liststate_watching_url = ''
  77. } else {
  78. var liststate_watching_url = '&liststate.watching=1'
  79. }
  80. if (liststate_completed == 0) {
  81. var liststate_completed_url = ''
  82. } else {
  83. var liststate_completed_url = '&liststate.completed=1'
  84. }
  85. if (liststate_stalled == 0) {
  86. var liststate_stalled_url = ''
  87. } else {
  88. var liststate_stalled_url = '&liststate.stalled=1'
  89. }
  90. if (liststate_dropped == 0) {
  91. var liststate_dropped_url = ''
  92. } else {
  93. var liststate_dropped_url = '&liststate.dropped=1'
  94. }
  95. if (liststate_collecting == 0) {
  96. var liststate_collecting_url = ''
  97. } else {
  98. var liststate_collecting_url = '&liststate.collecting=1'
  99. }
  100. if (liststate_unknown == 0) {
  101. var liststate_unknown_url = ''
  102. } else {
  103. var liststate_unknown_url = '&liststate.unknown=1'
  104. }
  105. var a_anime = '<li><a href=\"' + list_url + user_url + '\">All Anime</a></li>'
  106. var w_state = '<li><a href=\"' + list_url + user_url + '&liststate.watching=1\">Watching</a></li>'
  107. var com_state = '<li><a href=\"' + list_url + user_url + '&liststate.completed=1\">Completed</a></li>'
  108. var s_state = '<li><a href=\"' + list_url + user_url + '&liststate.stalled=1\">Stalled</a></li>'
  109. var d_state = '<li><a href=\"' + list_url + user_url + '&liststate.dropped=1\">Dropped</a></li>'
  110. var col_state = '<li><a href=\"' + list_url + user_url + '&liststate.collecting=1\">Plan to Watch</a></li>'
  111. var u_state = '<li><a href=\"' + list_url + user_url + '&liststate.unknown=1\">Recently Added</a></li>'
  112. $('ul.g_list').before('<ul class=\"g_list jump\">' + a_anime + w_state + com_state + s_state + d_state + col_state + u_state + '</ul>');
  113. }