dialog-torrent-attribute-add-tracker.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <div class="easyui-layout" data-options="fit:true" style="width:100%;height:100%;">
  2. <div data-options="region:'center'" style="padding:3px;border:0px;">
  3. <div id="" class="dialog" style="width:100%;padding:0px;">
  4. <span id="dialog-torrent-attribute-add-tracker-tip" class="tip"></span>
  5. <textarea id="txtTrackers" style="width:99%;height:120px;"></textarea>
  6. </div>
  7. </div>
  8. <div data-options="region:'south',border:false" style="text-align:right;padding:6px;">
  9. <span id="text-nochange" style="display:none;"></span>
  10. <a id="torrent-attribute-add-tracker-button-search-best-ip" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true" href="javascript:void(0);">Best Trackers</a>
  11. <a id="torrent-attribute-add-tracker-button-search-all-ip" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true" href="javascript:void(0);">All Trackers</a>
  12. <a id="torrent-attribute-add-tracker-button-ok" class="easyui-linkbutton" data-options="iconCls:'icon-ok',plain:true" href="javascript:void(0);">Ok</a>
  13. <a id="torrent-attribute-add-tracker-button-cancel" class="easyui-linkbutton" data-options="iconCls:'icon-cancel',plain:true"
  14. href="javascript:void(0);">Cancel</a>
  15. </div>
  16. </div>
  17. <script type="text/javascript">
  18. (function (thisDialog) {
  19. var title = "tip".split(",");
  20. var torrent = transmission.torrents.all[system.currentTorrentId];
  21. $.each(title, function (i, item) {
  22. thisDialog.find("#dialog-torrent-attribute-add-tracker-" + item).html(system.lang.dialog[
  23. "torrent-attribute-add-tracker"][item]);
  24. });
  25. thisDialog.find(".title").css({
  26. background: "#e6e6e6"
  27. });
  28. title = "button-search-best-ip,button-search-all-ip,button-ok,button-cancel".split(",");
  29. $.each(title, function (i, item) {
  30. thisDialog.find("#torrent-attribute-add-tracker-" + item).html(system.lang.dialog["public"][item]);
  31. thisDialog.find("#torrent-attribute-add-tracker-" + item).html(system.lang.dialog[
  32. "torrent-attribute-add-tracker"][item]);
  33. });
  34. thisDialog.find("#text-nochange").html(system.lang["public"]["text-nochange"]);
  35. // 确认
  36. thisDialog.find("#torrent-attribute-add-tracker-button-ok").click(function () {
  37. var urls = thisDialog.find("#txtTrackers").val();
  38. var button = $(this);
  39. if (urls != "") {
  40. var newTrackers = [];
  41. var items = urls.split("\n");
  42. $.each(items, function(index, value) {
  43. if (isURL(value) && newTrackers.indexOf(value)==-1) {
  44. newTrackers.push(value);
  45. }
  46. });
  47. if (newTrackers.length==0) {
  48. thisDialog.find("#text-nochange").html(system.lang["public"]["text-nochange"]).fadeInAndOut();
  49. return;
  50. }
  51. var icon = button.linkbutton("options").iconCls;
  52. button.linkbutton({
  53. disabled: true,
  54. iconCls: "icon-loading"
  55. });
  56. transmission.exec({
  57. method: "torrent-set",
  58. arguments: {
  59. ids: system.currentTorrentId,
  60. trackerAdd: newTrackers
  61. }
  62. }, function (data) {
  63. button.linkbutton({
  64. iconCls: icon,
  65. disabled: false
  66. });
  67. if (data.result == "success") {
  68. system.getTorrentInfos(system.currentTorrentId);
  69. thisDialog.dialog("close");
  70. }
  71. });
  72. } else {
  73. thisDialog.find("#text-nochange").html(system.lang["public"]["text-nochange"]).fadeInAndOut();
  74. }
  75. });
  76. thisDialog.find("#torrent-attribute-add-tracker-button-search-best-ip").click(function () {
  77. var trackersURL = "https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt"
  78. $.get(trackersURL,function(data){
  79. $("#txtTrackers").html(data.replace(/[\r\n]+/g,"\n"));
  80. });
  81. });
  82. thisDialog.find("#torrent-attribute-add-tracker-button-search-all-ip").click(function () {
  83. var trackersURL="https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_ip.txt"
  84. $.get(trackersURL,function(data){
  85. $("#txtTrackers").html(data.replace(/[\r\n]+/g,"\n"));
  86. });
  87. });
  88. thisDialog.find("#torrent-attribute-add-tracker-button-cancel").click(function () {
  89. thisDialog.dialog("close");
  90. });
  91. function isURL(v) {
  92. return /^[a-zA-z]+:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?$/.test(v);
  93. }
  94. })($("#dialog-torrent-attribute-add-tracker"));
  95. </script>