R酱的资源收纳库(Symfony 5+Vue)

Rhilip 2020-02-23 PM 3856℃ 24条

网址: https://share.rhilip.info/#/

update 2020.07.20: 因OneDrive于2020年7月初大量杀号,所以两个站点均已关闭。
update 2020.08.04: 使用备用的OneDrive域开始恢复,之前的分享只剩下一个账号还活着,其他看情况,能补就补吧。。资源仓库( https://archive.rhilip.info/ )应该是不再开了,也没精力再做整理了。

在2019年初,随着接触到OneDrive和Google Drive后,我开始使用这两个在线服务存储发种姬发布过的种子资源。并在之后使用过 donwa/OneIndex 搭建过在线目录程序,当时的网址是 https://seedbox.rhilip.info/oneindex ,因为经常性出现白屏,于19年中旬就关闭了。(说起来也比较有意思,虽然该域名连DNS解析都已经停了,但目前在Google给我发送的搜索结果表现中仍然存在且高居榜首)

也正如我在 R酱の资源仓库 中的说明一样,我依次尝试 PyOne、CuteOne、OLAINDEX 之后,开始采用OneDrive分享链接的形式进行资源分享。这种方法很好,通过 脚本自动生成分享链接(见前文 如何批量生成OneDrive分享链接 )+git自动同步 的形式,我可以很方便的将最新的资源通过OneDrive形式进行分享。

image-20200223185600543.png

这样也存在一些不足,比如说,分享更新不及时,往往都是塞满一个OD盘之后才开始建立分享,然后进行链接整理;管理起来也略显麻烦,有些不是很适合归类的难以进行发布。

所以,前段时间,我觉得需要另写一套工具,来实现整个 资源下载+OD或GD上传备份+OD分享+资源展示 链条。那么结果就是一个新的网站 R酱的资源收纳库。其整个技术栈如下:

  • 前端 Vue + Vue Route , 前端项目开源在 Rhilip/od_share_frontend 并使用Github Action进行自动构建
  • 后端 API : Symfony 5 , transfer: Python Scirpt + Rclone

资源准备

资源下载主要使用的工具是Deluge和Aria2,在资源下载完成后,将其移入watch dir,然后交由定时脚本Autorclone发送到Google Drive中的特定目录。早前(19年下半年),我基本都是手动登录Deluge,然后使用种子的移动+删除进行操作,但是Deluge Webui在删除大量种子的时候会出现卡顿,其一没注意便容易出现爆盘的问题),所以之后使用定时脚本的方式进行移动,脚本示例如下:

from deluge_client import DelugeRPCClient

config = {
    'host': 'localhost',
    'port': 58846,
    'username': 'username',
    'password': 'password'
}

remove_to = '/path/to/move/to'

client = DelugeRPCClient(
            config['host'],
            config['port'],
            config['username'],
            config['password'],
            decode_utf8=True,
        )

# 暂停所有非PT的种子
seeding_torrents = client.call('core.get_torrents_status', {'state':'Seeding'} , ['private'])
for hash_, value in seeding_torrents.items():
    if not value['private']:
        client.call('core.pause_torrent', [hash_])

# 将所有暂停的种子存储目录移到remove_to,并从Deluge中移除
paused_torrents = client.call('core.get_torrents_status', {'state':'Paused'}, ['save_path'])

for hash_, value in paused_torrents.items():
    if value['save_path'] != remove_to:
         client.call('core.move_storage', [hash_], remove_to)
         client.call('core.remove_torrent', hash_, False)

Q: 为什么不使用Deluge的AutoRemove Plus插件?
A: AutoRemove插件只能实现资源的移除,不能进行 move_storage 操作。

Q: 为什么不使用Deluge的Execute插件?
A: Execute插件的相关实现仍需要具体编写bash或者python脚本,不如直接定时脚本方便。且Deluge的RPC相关方法实现,已经能满足要求。

后端 Symfony 5 构建

资源转存和OD构建分享链接见前文,此次仅对相关脚本进行更新,且相关后端均没有开源打算,故不再进行说明。

因为之前Vue学习使用的体验,这次项目使用前后端分离的形式进行搭建。然后在众多后端API架构(Python和PHP)中挑选,最终选择Symfony 5进行构建。选择的原因大体是因为:

  1. Python项目使用uwsgi部署特别麻烦(被Pt-Help坑惨了,之后Pt-Help也开始使用gunicorn进行部署)
  2. 众多PHP框架中,我个人比较推崇Symfony,且最早在写RidPT的时候便尝试过Symfony 4.5,但之后不了了之。此次项目较为简单,不需要考虑用户状态管理,且Symfony升级到5没有使用过。

目前项目抛出以下路由,基本能满足要求。

GET /items/{id}    # 获取items的详细信息
GET /search/{key}  # 进行搜索,当key不存在的时候列出最新入库的资源
GET /status        # 使用OD帐号状态

然而在实际搭建过程中仍然遇到一些问题:

  1. 用来搭建restful的FOSRestBundle目前没有支持Symfony 5,所以只能自己简单的使用Controller+Route进行限制。但索性API并不需要完整的restful支持。
  2. Doctrine并不支持SQL的 MATCH () AGAINS ()方法,需要采用 beberlei/doctrineextensions 库对其进行扩展。此外Doctrine默认生成的数据库字段需要进行小幅更改。

前端Vue构建

  1. 由于之前测试过 Vue+iView,所以本次也采用同样采用相同的方式进行构建,并使用Vue-Route构建单页面应用。

d8CvSQEGZot6blw.png

  1. Github Action测试,也算是第一次尝试使用Action。(之前仅有一个项目使用Travis CI进行构建)

Action动作中包括node及yarn依赖安装,构建并部署。相对也都简单,几乎没有什么可以说明的。。。。。

接下去打算

  • 将目前 Archive.rhilip.info 下的资料转移到目前前端框架中,考虑使用Vuepress进行构建。
  • 后端支持分页以及流量限制。

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 24 条评论


  1. 雷震子
    雷震子

    大神,你的资源仓库里的很多链接出问题了,进不去,可否解决一下?

    回复 2020-03-28 16:44
    1. Rhilip
      Rhilip 博主

      archive域名下的不再做更新了,之后都会转到share子域名下。

      回复 2020-04-02 16:57
      1. 陌生人
        陌生人

        不好意思,请问这个连结可以重新修复吗?
        https://archive.rhilip.info

        因为现在完全打不开也不知道该如何找以前想要下载的东西。

        请问您可以帮忙吗?

        回复 2020-06-10 14:21
      2. isaac
        isaac

        r酱,https://archive.rhilip.info/ 网站-里番资源-漫之学院资源部,打开链接后显示503 SERVICE UNAVAILABLE,可以修复下吗

        回复 2020-06-17 15:42
        1. Rhilip
          Rhilip 博主

          不补链

          回复 2020-06-18 09:10
          1. isaac
            isaac

            telegram联系不了,漫之学院那些资源是失效被封了还是原资源还在,里面有想要的资源,怎么下载,谢

            2020-06-18 12:35
          2. Rhilip
            Rhilip 博主

            telegram联系不了从来不是我的问题,请自己解决spam问题。
            503是资源还在,只是OneDrive域不响应。404是资源失效。

            2020-06-18 15:18
        2. 哈哈
          哈哈

          你说的那个漫之学园,他才更新到12弹,我手里面的资源已经到了15弹,很明显他没更新

          回复 2020-07-01 23:07
          1. Rhilip
            Rhilip 博主

            本人从未标榜过自己是实时更新的,一个月能更新一次就已经很了不得了。

            2020-07-04 09:42
  2. 嬉皮笑脸
    嬉皮笑脸

    大佬 2020的里番不更新了吗?

    回复 2020-04-26 01:46
  3. 嬉皮士
    嬉皮士

    完全看不懂(=_=) 我是看到资源库一直没更新然后搜索到的这个 请问大佬能提供个正在更新的网址吗?十分感谢

    回复 2020-04-26 01:49
  4. 王心斋
    王心斋

    打算做自己的nas,查资料的时候发现了个站点 无意间发现了相当多的好资源 感谢您的无私分享 无论是 技术上的 还是内容上的

    回复 2020-06-09 15:11
  5. 密特拉
    密特拉

    onedreve是访问数过多拒绝新访问了吗?

    回复 2020-07-11 19:05
    1. Rhilip
      Rhilip 博主

      自7月初Onedrive of Business就有明显的故障,在微软官方问答中有人问过情况。具体可以自己去找找。如果情况(无法打开分享链接,使用API无法上传下载)过段时间没有明显好转,以后可能会直接关掉本资源站。

      回复 2020-07-13 17:03
      1. Stee
        Stee

        现在是资源站都关闭了?

        回复 2020-07-18 18:35
  6. 娼姬
    娼姬

    已经关站了么??要登陆??悲报啊,多好的资源站就这么挂了。。。。。当初无意中发现后如获至宝,没想到这么快就倒了。。。。。我的OneDrive也挂了几个。。。。不过还有两个活的。。。。

    回复 2020-07-26 20:45
    1. Rhilip
      Rhilip 博主

      我也有活的号,也有两个自己的A1域没有挂。不过之前做仓库的号(十来个),多是网上直接公开申请。
      目前的话,补档过于麻烦,所以一时也没精力再做了。

      回复 2020-08-02 16:43
      1. 娼姬
        娼姬

        怪不得,网上公开申请的容易挂,我挂的都是网上公开申请的。。。。。还是自己申请或是用大佬分享的比较稳啊。。。。现在不是可以免费申请office E5开发者订阅么?应该比较稳。而且绅庭也有弄自己的OneDrive,加入审核组,可以向站长申请。。。。。。资源没存档么?感觉弄弄二次元啥的就行了,主要还是在线播放方便些。

        回复 2020-08-03 20:13
        1. Rhilip
          Rhilip 博主

          重新搬运有点麻烦,因为原来的话将近20个5T盘了,恢复是件麻烦事。
          Onedrive的上传速度也不算很好,到时候再看看把。
          没翻车的域的,我倒是还有。
          资源也有别的网盘备份存档。

          回复 2020-08-04 08:57
          1. 娼姬
            娼姬

            实际上感觉光搬运二次元相关的就好了,里番主要是为了在线看方便点,动漫raw主要搬运些bd无修正的肉番就够了,本来下载动漫bd也是冲着无修正去的,然后就是各种本子和单行本,杂志生肉合集什么的,这些不太好下,国外的网盘下起来广告多又慢。galgame就没必要搬运了,本来就经常各种更新版本,而且已经有终点合集了。HRPG和3D的H游戏可以弄弄。还是精简下资源比较好

            2020-08-07 20:56
          2. Rhilip
            Rhilip 博主

            其实我用OneDrive建收纳库的初始目的不是分享,而是存档。一些我发种姬自动下载的东西,比如[PuyaSubs!]等动漫RAW或者美剧0day(每天都自动上传一堆),或者一些我平时在Google Drive上转存后就不再需要的东西(别人的有些整理习惯和我不一样)。这些放在Google Drive(无论是私人盘还是团队盘)中都显着过于扎眼,所以把这些move到OneDrive上正好,不再需要,而且即使要用到(临时观看、下载或者重新转存回来)也可以较快地恢复。

            2020-08-08 11:32
  7. wlm3201
    wlm3201

    作为曾经的伸手党,感谢R酱的无私分享

    回复 2020-08-02 14:56
  8. xxxz
    xxxz

    感谢大大之前的付出,忧郁弟弟资源百度云太烦了,都是来大大这里下载galgame的

    回复 2020-08-07 09:07
  9. 蘇蛇蛇
    蘇蛇蛇

    大佬!我致敬你!

    回复 2020-10-24 18:42