From 6dd9199e3db072632d2107c7e7daea90a99f95b9 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Fri, 14 Mar 2025 17:19:48 -0400 Subject: [PATCH] [+] Readme --- README.md | 49 +++++++++++++++++++- analysis.py | 74 +++++++++++++++++++++++++++++++ docs/deepseek-food-selection.png | Bin 0 -> 24249 bytes 3 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 analysis.py create mode 100644 docs/deepseek-food-selection.png diff --git a/README.md b/README.md index 17b5bea..f46e614 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,47 @@ -# ChannelTree - + +
+ +# TGCN 频道树 + +这是 2025 年植树节的时候在 telegram 上和大家一起种下的频道树 qwq + +活动结束的时候树上有 214 个频道,其中有 74 根树枝和 140 个树叶。树上大小频道都有,最大的频道有 83,385 订阅量哇。开坑的时完全没有想到会有这样的影响力,感谢大家参与哦~ + +可以在 https://tree.aza.moe 查看最终的完整频道树,或者从[树根](https://tree.aza.moe/c/hykilp)开始跟随树杈🔗探索频道树。 + +这个仓库里是「TGCN 植树机器人」和网页服务器的源码,以及频道树的数据备份。 + +### 颁奖(?) + +下面是一些在可能有意思的极值上的频道 qwq +(因为包含自己的树根频道有些作弊,下面是除了树根以外的频道哦) + +**最高的树叶**: [@PaffWarehouse](https://t.me/PaffWarehouse) +离树根的距离为 10 个频道 + +**树叶最多的树枝**: [@XLDFDZ](https://t.me/XLDFDZ) +有 17 个分叉(3 个树枝和 14 个树叶) + +**树枝最多的树枝**: [@Billchenla](https://t.me/Billchenla) +有 5 个分叉(全都是树枝) + +**订阅量最多**: [@pixiv_top50](https://t.me/pixiv_top50) +有 83,385 位订阅者 + +**频道@名最长**: [@TooLongloonglooongloooonglooooon](https://t.me/TooLongloonglooongloooonglooooon) +@名有 32 个字符 + +**自挂东南枝**: [@lovemachine520](https://t.me/lovemachine520) 和 [@MG08ACA16TE](https://t.me/MG08ACA16TE) +学会了用奇妙改名漏洞让自己爬上树的人类 + +**上树频道最多的管理**: [@clanstnya](https://t.me/clanstnya) +给频道树添加了 6 个频道 + +**名字听起来最好吃的频道(R1 钦定)**: [@chheese_cookie_bedrock](https://t.me/chheese_cookie_bedrock) +「奶酪基岩饼干」 + + + +~~**名字听起来最圆圆的让人想 ruarua 的频道**: [@catttballl](https://t.me/catttballl)~~ +「Rua~rua~猫猫球」🐈 + diff --git a/analysis.py b/analysis.py new file mode 100644 index 0000000..7acd41d --- /dev/null +++ b/analysis.py @@ -0,0 +1,74 @@ +import re + +from tqdm import tqdm + +import db +from bot import channel_html + + +def exp1(): + pop = [] + r = re.compile(r"([\d ]+) subscribers") + for channel in tqdm(db.Channel.select()): + html = channel_html(channel.username) + m = r.search(html) + pop.append((channel.username, int(m.group(1).replace(" ", "")) if m else 0)) + + pop.sort(key=lambda x: x[1], reverse=True) + for channel, subscribers in pop: + print(f"{channel} - {subscribers}") + + +def exp2(name): + # Count leaf and nodes in children (leaf is a channel without children) + xl = db.channel_info(name) + leaf_count = 0 + node_count = 0 + for child in xl.children: + if child.children: + node_count += 1 + else: + leaf_count += 1 + print(f"Leaf: {leaf_count}, Node: {node_count}") + + +def exp3(): + # Find the channel with the most leafs and the channel with the most non-leafs + most_leafs = None + most_non_leafs = None + most_leafs_count = 0 + most_non_leafs_count = 0 + + for channel in tqdm(db.Channel.select()): + if channel.height == 0: + continue + leaf_count = 0 + non_leaf_count = 0 + for child in channel.children: + if child.children: + non_leaf_count += 1 + else: + leaf_count += 1 + + if leaf_count > most_leafs_count: + most_leafs = channel + most_leafs_count = leaf_count + + if non_leaf_count > most_non_leafs_count: + most_non_leafs = channel + most_non_leafs_count = non_leaf_count + + print(f"Most Leafs: {most_leafs.username} - {most_leafs_count}") + print(f"Most Non Leafs: {most_non_leafs.username} - {most_non_leafs_count}") + + +if __name__ == '__main__': + # exp1() + + # exp2("XLDFDZ") + # exp2("Billchenla") + + exp3() + + + diff --git a/docs/deepseek-food-selection.png b/docs/deepseek-food-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ce343b87b3fd032287862922ff4a47ef63c889 GIT binary patch literal 24249 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 literal 0 HcmV?d00001