关于运营大型 Galgame 资源站的一些想法

终点已死，大多数 galgame 资源站都关站避风头。要一个足够强大的资源站。这是一些想法，希望对有运营资源站想法的人能够起到帮助。

对政治不抱有幻想

有句话说，政治这个东西，如果你不找上它，那它就会找上你。

对终点论坛站长被捕表示哀悼的同时，可曾有进一步的深思？所谓愚蠢的现世报就是如此。既然选择作别人案板上的肉，那被切碎吃掉的时候，就不要抱怨命运不公。可曾想，你流出的泪水，都是曾经进到脑子里的水。

终点站长对政治没有清醒的认识，盲目相信中国会对他在国内开设论坛的行为忽略不管，并且存在侥幸心理。甚至，他们助纣为虐，在论坛中开启言论审查，甚至支持实名制。其后果就是，他们所支持的实名制和他们所支持的国产品牌把他们送进了监狱。

一个人公开的行为应该与他的政治立场一致，如若不然，则腹背受敌。既然要做 Galgame 资源站，就应该清楚地认识到，这种行为在中国是违法的，是随时可能受到制裁的。所以，对抗中国审查与监管是不可避免的。

中国正在努力追赶遥遥领先的朝鲜，这是显而易见的事实。我们甚至无法确定，是否有一天，会因为审查与专制而再也无法在中国国内玩到 Galgame。

前端与后端的选择

SSR 架构实际上是一个不错的选择。在套上 Cloudflare 之后，静态页面可以被有效缓存，因此可以获得与 CS 架构相当的并发忍受能力。但 SSR 的主要优点还是增加爬虫编写难度。

后端存储显然应该用 Onedrive 这种可以方便白嫖的存储，不然 1 天 1T 流量，VPS/VDS 会带宽不够且流量不够，对象存储费用惊人。容量倒不是大问题。不过，就算是 Ondrive，也需要多个账号负载均衡，不然会超出 API 调用限制。Onedrive 的一个优点就是国内至少是可以连通的，虽然速度可能不高。

Onedrive 的 Token 应该被缓存，否则并发较高时，会因为同时异步调用微软 API 太多而内存溢出。缓存策略为尽量保证用户可以在一个 Token 过期前下载完成。

缓存可以通过 Redis 等数据库实现，定时任务是比较容易的。

大量资源的组织

组织大量资源是很费力的。参考 BT 站和 E-hentai，使用规范的资源命名方式可以有效整理资源和提升检索能力。

一个建议的资源命名方式为

（系列名）[会社名 1][会社名 2][会社名 n] 元の日本名（中文名 1)（中文名 2)（中文名 4)[平台名]{汉化组等信息}

其中，系列名、中文名和汉化组信息可以没有。

这个命名方式可以用正则表达式识别，因此在不使用数据库存 tag 的情况下，如果需要也可以直接根据名称分析。参考代码如下

Copy
import re

# 示例字符串
example = "（系列名）[会社名 1][会社名 2][会社名 n] 元の日本名（中文名 1)（中文名 2)（中文名 4)[平台名]{汉化组等信息}"

# 正则表达式
pattern = r'\((.*?)\)?(\[(.*?)\])+(.*?)\((.*?)\)(\[(.*?)\])?\{(.*?)\}?'

# 解析字符串
match = re.match(pattern, example)

if match:
# 提取数据
series = match.group(1)
publishers = match.group(3).split('][')
jp_name = match.group(4).strip()
cn_names = match.group(5).split(')(')
platform = match.group(7)
comment = match.group(8)

# 创建对象
result = {
"series": series if series else None,
"publisher": publishers,
"jpName": jp_name,
"cnName": cn_names,
"platform": platform if platform else None,
"comment": comment if comment else None
}
else:
result = None

print(result)

当资源足够庞大时，为了方便检索，以及跑各种各样的算法，可以爬取 vndb，将 galgame 信息存储于本地。这种做法可以实现类似 E-hentai 的发达的标签检索能力，以及基于图结构的推荐算法与热度算法。

资源存储

显然需要在多个 Onedrive 中存储完全相同的内容，除此以外，还需要在某个可靠云盘（例如 MEGA）中或者本地异地存储。

一个人把数据放在本地是不安全的，这是因为可能会发生各种意外事故而丢失全部数据。为此，需要让相隔很远的多个人都存相同的数据，实现异地容灾。

本地存储的介质是一个问题，硬盘价格比较昂贵，存储所有 Galgame 所需要的硬盘大约为 12TB，这么大容量的硬盘是比较昂贵的，大概需要 1 千多人民币。如果有条件，也可使用廉价的磁带作为存储介质。但不能使用二手硬盘，尽管二手硬盘便宜，但不知道什么时候就数据丢失了。

存储在网盘的开销是不小的。如果只存储在 Onedrive，有可能会因为订阅失效和封号而丢失全部资源。

成本

采用 Onedrive 方案按理来说没多少成本，但用的人多了难免会出各种维护成本和服务器成本。—— 但，用的人多了，就代表回收成本的机会多了。

一个及格的 Galgame 资源站不应该设置下载门槛，更不应该收费下载。合理的抵消成本的方式是接受捐助和广告。

接受捐助有一定风险，因为可能需要用到国内的支付方式。而广告，只要用的人多了，就会有人求着去做广告的。

不过，在分发广告时，应该注意，不能影响用户体验。

先到这里，后面可能会添加