加载中...
不想等待可以点我关掉

前言

之前调CW时发现Cyan加上了TG频道说说,因为已经有Memos了所以没有在意,昨天在Stellar 探索号看到有stellar主题集成Telegram Channel说说的教程,忽然灵光一闪,这拿来放草稿/想法挺合适的嘛

正文

首先新建一个频道,并记下频道ID

1708839745065.webp

新建一个Cloudflare Worker,复制下面的代码粘贴进去

为了兼容Stellar的时间线,我在lvbyte的基础上改了点代码

并修改顶部配置

1
2
3
const ChannelNameList = ['thun888sthinks']; //频道ID,可添加多个
const deniedRegion = [""]; 屏蔽区域,如CN,US
const baseproxyurl="https://get-tg-channel-api.hzchu.top/?proxy=" //将中间域名替换为你为worker绑定的域名

随后按照使用Memos时间线形式使用即可

可传入参数

参数 参数名 默认值 描述
cid 频道id 0 指在代码里配置的第n个频道,并不是上文所述频道id
mid 信息id / 指定后只返回该信息,信息id可在发送后查看
tag 标签名 DefaultTag 筛选传入的标签返回
limit 获取条数 / /
offset 获取信息偏移量 / 如果有一条信息id80的信息,那么当传入80时将返回这条信息之前的所有信息
showtag 是否展示标签 true /
showview 是否展示访问量 false 启用时会在末尾附上(views:number)
usemd 是否使用Markdown true 开启后返回未被tg解析过的md语法

众所周知,0是第一个自然数,所以cid传入0时表示获取第1个频道

tag为空时默认返回#DefaultTag的数据,可在代码中自行更改

tag原版是#SFCN,一开始没想明白是什么意思,现在明白了:Suitable For China,可以有别的玩法o( ̄▽ ̄)d

在Stellar中的使用

代码:

1
2
3
{% timeline user:thun888sthinks api:https://get-tg-channel-api.hzchu.top/?tag=DTA&limit=3 type:memos %}

{% endtimeline %}

user为频道ID,api为你为CFW绑定的域名,type填memos

碍于篇幅限制,只展示前3条

/source/_data/widgets.yml
1
2
3
4
5
6
timeline:
layout: timeline
title: 近期动态
api: https://get-tg-channel-api.hzchu.top/?tag=DTA&limit=3
type: memos
hide: user,footer

有一些功能在默认的设计线下不能很好的实现,但是通过数据插件就可以实现了,比如动态加载更多内容,回应显示,访问量显示等

有空再写(挖坑.webp

其它用法

代码:

1
2
3
{% timeline user:Thun888sDraftArticles api:https://get-tg-channel-api.hzchu.top/?cid=1&tag=DTA&limit=3 type:memos %}

{% endtimeline %}

代码:

1
2
3
{% timeline user:Thun888sDraftArticles api:https://get-tg-channel-api.hzchu.top/?cid=1&tag=Test&mid=52&showtag=false type:memos %}

{% endtimeline %}

可以用在很多地方获取某些信息,作为某种接口来使用。在这一基础上,你甚至可以修改代码,改为只返回图片,在某种意义上实现图床的效果,不过滥用可不太好啊

代码:

1
2
3
{% timeline user:Thun888sDraftArticles api:https://get-tg-channel-api.hzchu.top/?cid=1&tag=Test&showview=true type:memos %}

{% endtimeline %}

代码:

1
2
3
{% timeline user:Thun888sDraftArticles api:https://get-tg-channel-api.hzchu.top/?cid=1&tag=Test&usemd=true type:memos %}

{% endtimeline %}

在默认情况下,tg会解析md语法,对于不支持的语法会转义,从而导致前端无法正常解析md语法,在使用该参数后程序会将解析后的文本还原为正常md语法并返回。默认开启

相关配置:

1
const ChannelNameList = ['thun888sthinks','Thun888sDraftArticles'];

Todo

  • 可在请求时选择过滤哪个tag
  • 完善Emoji支持
  • 前端传入标签名
  • 可选显示标签名及访问量
  • 获取指定信息
  • 多频道支持
  • 表情包标签解析
  • 自定义是否显示引用
  • 可传入需要返回的名称
  • 可选使用tg自带分类

结语

它可以使静态博客进一步动态化,加强可玩性,也可在很多地方使用。

如果你有一些像多频道融合多标签获取的功能建议,那就大可不必了,毕竟它一开始只是一个说说程序啊