关于L站的抽奖,我又造了一个轮子,开源,欢迎提PR

假设你们已经知道大善人的 Workers 和 Pages,并且已经知道怎么创建了 :grimacing:

Workers:部署查询接口
Pages:前端抽奖页面

体验地址
Github仓库

Workers 部署之后记住这个地址

Page 部署

html代码修改此行代码

使用

填写在帖子url中的数字

后续开发计划

  • 点赞抽奖
  • 点赞+评论抽奖
  • 优化随机算法
  • UI优化
21 Likes

你是大善人,是给大家方便的佬,祝你周五愉快

3 Likes

前排围观支持一下

抽奖最大的痛点是抽奖服务器很难读取带权限的帖子 :tieba_025:

1 Like

直接反代linux.do,然后登陆账号:tieba_087:

2 Likes

所以我说很难,也许可以撺掇neo给OAuth鉴权后的token加个获取特定帖子信息的能力?

或许 neo 可以给论坛加个抽奖功能 tieba_025

吧这个项目用油猴在页面内打开,cookie走的是当前登录人的,可以解决问题

太强了,大佬!

开源精神!赞

点赞数据,我目前不知道有没有接口是否可以拿到

之前有帖子讨论的,目前帖子点赞接口他只会显示部分(因为前端也只显示一定数量)比较暴力的取法是有的,可以取自己被点赞的所有历史,再过滤帖子,我的自动阅读脚本里有集成可以参考

const postId = parseInt(articleElement.id.replace('post_', ''));
 
const requestUrl1 = `https://linux.do/user_actions.json?limit=2000&username=${articleElement.innerHTML.match(/data-user-card="([^"]+)"/)[1]}&filter=2`;
                const requestUrl2 = `https://linux.do/discourse-reactions/posts/reactions-received.json?username=${articleElement.innerHTML.match(/data-user-card="([^"]+)"/)[1]}`;
 
                try {
                    const [response1, response2] = await Promise.all([fetch(requestUrl1), fetch(requestUrl2)]);
                    const data1 = await response1.json();
                    const data2 = await response2.json();
 
                    const userList1 = data1.user_actions
                        .filter(action => action.post_id === postId)
                        .map((action, index) => `${index + 1}. ${action.acting_username}`);
 
                    const userList2 = data2
                        .filter(item => item.post_id === postId)
                        .map((item, index) => `${userList1.length + index + 1}. ${item.user.username}`);
 
                    const userList = [...userList1, ...userList2];
1 Like

我这个我知道,之前我发抽奖,我研究了,我自己:u6709:写了脚本,这种只能取到点小红心的,点 :tieba_087:这种的取不完整

后排强势围观

应该可以吧,你看我请求了两个端,一个是点赞的,一个是reaction的
還是說 reaction 的取不完整呢?我之前試了20多個的印象中可以

真不行呢?这么神奇,刚刚试一个50个的,只有46个 :melting_face:

这样感觉还是搞出论坛插件比较靠普,最好能设定等级,重复是否只计一次之类的

是真的不可以,因为我测试过了,因为我之前那个点赞的数量样本数据还挺大,所以被我测试出来了

点小红心的是可以完整抓到的,点其他的去抓,他是会漏数据的

既然需求量这么高,完全可以跟始皇提需求,让他内置

伪随机我觉得也是可以的,例如根据截止时最后回复的post id/楼层/username 等数据作为种子,再随机出一个数字,这样抽奖结果是可以被复现证实没有黑箱自演的。
重复回复的问题只要帖子设定冷却间隔大于抽奖期限就能实现

期待点赞抽奖