share_search.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. const API = require("./API/API");
  2. const api = API();
  3. var keywork, go;
  4. async function file_down(m) { // 文件下载
  5. var url = await api.share_download(m.key, cookie);
  6. if (url != false) {
  7. $ui.browser(url);
  8. $ui.toast("开始下载...");
  9. } else {
  10. $ui.toast("获取失败");
  11. }
  12. }
  13. async function file_info(m) {
  14. var data = await api.share_info(m.key, cookie);
  15. if (data == false) {
  16. $ui.toast("获取失败!");
  17. } else {
  18. $ui.showCode(`文件名: ${data.source.name}\n文件大小: ${(data.source.size/1024/1024).toFixed(2)}M\n访问次数: ${data.views}\n下载次数: ${data.downloads}\n创建时间: ${data.create_date}\n储存节点: ${data.creator.group_name}`);
  19. }
  20. }
  21. async function dir_info(m) {
  22. var data = await api.share_info(m.key, cookie);
  23. if (data == false) {
  24. $ui.toast("获取失败!");
  25. } else {
  26. $ui.showCode(`文件夹名: ${data.source.name}\n访问次数: ${data.views}\n下载次数: ${data.downloads}\n创建时间: ${data.create_date}\n储存节点: ${data.creator.group_name}`);
  27. }
  28. }
  29. async function copySourceUrl(m) { // 复制分享链接和密码
  30. var url = `https://moecloud.cn/s/${m.key}?path=%2F`;
  31. $clipboard.text = url;
  32. $ui.toast("复制链接成功");
  33. }
  34. async function save_to(m) {
  35. if(await api.share_save(m.key, path=="" ? "/" : path, cookie)) {
  36. $ui.toast("保存成功!");
  37. } else {
  38. $ui.toast("保存失败!");
  39. }
  40. }
  41. module.exports = {
  42. type: 'list',
  43. async beforeCreate() {
  44. getCookie();
  45. go = true;
  46. keywork = await $input.text({
  47. title: '分享文件搜索',
  48. hint: '文件名',
  49. value: ''
  50. });
  51. },
  52. async fetch({page}) {
  53. page = page || 1;
  54. keywork == null ? this.finish() : null;
  55. var list = await api.share_search(keywork, page, cookie);
  56. if (list != false) {
  57. if (list.length < 18) {
  58. go = false;
  59. }
  60. var data = list.map(m => {
  61. if (m.is_dir) {
  62. return {
  63. title: `* ${m.source.name}`,
  64. route: $route("listshare", {
  65. title: m.source.name,
  66. key: m.key,
  67. path: '/'
  68. }),
  69. onLongClick: async () => {
  70. var selected = await $input.select({
  71. title: '选择哪一个',
  72. options: [
  73. {title: '保存文件', fun: save_to},
  74. {title: '复制链接', fun: copySourceUrl},
  75. {title: '属性', fun: dir_info}
  76. ]
  77. })
  78. selected != null ? selected.fun(m) : null;
  79. }
  80. }
  81. } else {
  82. return {
  83. title: m.source.name,
  84. onClick: () => {
  85. file_down(m);
  86. },
  87. onLongClick: async () => {
  88. var selected = await $input.select({
  89. title: '选择哪一个',
  90. options: [
  91. {title: '保存文件', fun: save_to},
  92. {title: '复制链接', fun: copySourceUrl},
  93. {title: '属性', fun: file_info}
  94. ]
  95. })
  96. selected != null ? selected.fun(m) : null;
  97. }
  98. }
  99. }
  100. });
  101. } else {
  102. $ui.toast("没有匹配文件!");
  103. }
  104. if (go) {
  105. return {
  106. nextPage: page+1,
  107. items: data
  108. }
  109. } else {
  110. return data;
  111. }
  112. }
  113. }