昨天看到的是哪个帖子,说要投票功能的来着?
今天正好我就搞了一下这个,功能很简单,就是抓取回复的内容,然后统计一下存到 Redis 缓存起来。
投票的源数据依然在 V2EX 站内,我这边不做长期保存,但我尽量保证这个接口的可用性(如果没有被恶意 or 攻击的话)。
然后看了下 V2EX 的 API 接口,似乎没有可以获取帖子信息的接口?
目前是爬的页面,然后用正则表达式匹配内容,为了减轻压力,统计数据只在帖子被访问时被动更新,最多一分钟爬取一次,整体数据缓存 24 小时,24 小时内被访问,则只重新爬取最新回复(适用回复分页的情况)。
暂时只支持单选,一个人只能投票一次(第一次有效回复为准),统计只与所在帖子和标题关联,同一个帖子可以多个投票,只要标题不同即可。
同一个图片地址在不同的帖子,算不同的投票,数据是分开的。
然后使用方法就是直接获取一个投票的图片地址,然后插入到主题即可,参与投票则回复 #选项标题#。
V2ex 投票生成器 代码已开源: GitHub
PS: 不知道爬虫行为是否被允许,如果违规请 @Livid 说一下,或者给一个允许的频率。
另:由于代码是盲写,可能还有些问题,后续如果出现频率问题,我会限制抓取为 1 秒钟请求一次(全局)。
由于要一套方案同时兼顾黑白两种背景,又不想加背景色,所以只能尽量选择折中的颜色了,这也导致了在两个颜色下都不够明显了...白色背景下不够黑,黑色背景下不够亮...
关于字体太大的问题,参考 v站 的风格,字体选择为一样了,大小稍微调小了一点。
其他的样式外观设计问题,直男审美已经发挥到极限了,有大佬愿意的话可以考虑帮忙调整一下?
由于投票导致评论区都是单一的评论,也从引导文案上稍微改了一下,希望能对评论区稍微友好一点。
关于使用体验问题,(第三方)似乎没有更好的方案了,svg 可以加入带连接按钮来实现点击投票,但是 v站 只能发图片,而 svg 以图片插入时不能交互,而且就算可以交互,站外投票又会有刷票之类的问题。
图片是 SVG 图片,如果拖动图片到新窗口打开,是可以选择复制选项的内容的。
后续我会在 复制 Markdown 代码的地方把问题和选项一并复制。
评论没有更新:由于是第三方爬取票数,统计有大约1分钟的延迟(暂时,可能会更长)
票数不正确:首先看是否延迟问题,统计以来路(仅V站)帖子id为准,如果未识别到来路的帖子 ID 则随机生成票数供预览
未投票可见结果:由于第三方,暂时没有想到更好的办法,无法实现,并且每个人需求不同,难以满足(曲线救国:跟踪用户,刷新后票数可见)...
匿名投票:同上...
骗回(tong)复(bi)的方法增加了:✅新技能 Get
另:感谢诸位热心的小朋友在评论区的测试😂
|  |      101freewind      2020-05-20 15:09:27 +08:00 | 
|  |      102wintersun      2020-05-20 15:14:34 +08:00 投票功能很有用。 但非官方、功能不完善的,感觉#没意义# #需要更好的# | 
|  |      103justicelaw      2020-05-20 15:18:35 +08:00 #有意义# | 
|  |      104ant4ly      2020-05-20 15:19:05 +08:00 #有意义# | 
|  |      105BBCCBB      2020-05-20 15:20:10 +08:00 #lz 想法不错# | 
|  |      106blackshh      2020-05-20 15:20:21 +08:00 #有意义# | 
|  |      107andrewpsy      2020-05-20 15:24:02 +08:00 #有意义# | 
|  |      108AllenHua      2020-05-20 15:26:14 +08:00 #有意义# | 
|      109ghouleztt      2020-05-20 15:31:20 +08:00 #有意义# | 
|      110huaxq01      2020-05-20 15:32:46 +08:00 #有意义# | 
|  |      111yokon      2020-05-20 15:36:02 +08:00 #无所谓# | 
|  |      112allenforrest      2020-05-20 15:36:41 +08:00 #有意义# | 
|  |      113lanhaooclub      2020-05-20 15:37:54 +08:00 via Android #有意义# | 
|  |      114paloalto      2020-05-20 15:39:26 +08:00 #需要更好的# | 
|  |      115JankinAnn      2020-05-20 15:41:06 +08:00 #有意义# | 
|  |      116JankinAnn      2020-05-20 15:41:28 +08:00 #有意义# 重复投票 TEST | 
|  |      117pan020037      2020-05-20 15:44:00 +08:00 #有意义# | 
|      118huyi23      2020-05-20 15:52:42 +08:00  1 #<script>alert(1)</script># | 
|  |      119zaul      2020-05-20 15:53:13 +08:00 #无所谓# | 
|  |      120bullettrain1433      2020-05-20 15:55:22 +08:00 #无所谓# | 
|  |      121SakuraKuma      2020-05-20 15:56:20 +08:00 #有意义# | 
|  |      122twor2      2020-05-20 15:56:25 +08:00 #有意义# #没意义# #需要更好的# | 
|  |      123xunco      2020-05-20 15:59:44 +08:00 #需要更好的# | 
|      124BigYao      2020-05-20 16:00:17 +08:00 #有意义# | 
|  |      125microka      2020-05-20 16:00:36 +08:00 #需要更好的# 只能说楼主出发点是好的,但我个人认为:一、这种投票方式对用户不友好;二、用爬页面来反馈生成投票结果的实现方式也不理想。 | 
|  |      126maplelin      2020-05-20 16:00:41 +08:00 #有意义# #需要更好的# | 
|  |      127zydxn      2020-05-20 16:02:28 +08:00 #需要更好的# | 
|  |      128TonyShng      2020-05-20 16:04:06 +08:00 #有意义# | 
|      129BestSera      2020-05-20 16:04:23 +08:00 #无所谓# | 
|      130d1n910      2020-05-20 16:05:35 +08:00 #有意义# #需要更好的# | 
|      131jmjc      2020-05-20 16:06:04 +08:00 #无所谓# | 
|  |      132kitebear      2020-05-20 16:19:27 +08:00 #有意义# #需要更好的# | 
|  |      133ACodelover      2020-05-20 16:19:58 +08:00 #有意义# | 
|  |      134iszengmh      2020-05-20 16:25:16 +08:00 via Android 我看成股票了 | 
|      135ytll21      2020-05-20 16:25:47 +08:00 #需要更好的# | 
|  |      136DoubleShut      2020-05-20 16:28:27 +08:00 #有意义# | 
|  |      137leesinquan      2020-05-20 16:28:45 +08:00 #有意义# | 
|      138Tays      2020-05-20 16:29:49 +08:00 #有意义# | 
|  |      139quxiangxuanqxx      2020-05-20 16:30:20 +08:00 #需要更好的# | 
|  |      140ZeroW      2020-05-20 16:31:49 +08:00 #有意义# | 
|  |      141akakidz      2020-05-20 16:33:14 +08:00 #需要更好的# | 
|  |      142xtx      2020-05-20 16:33:30 +08:00 via iPhone #需要更好的# | 
|  |      143ID2333      2020-05-20 16:33:55 +08:00 #需要更好的# | 
|  |      144sugarkeek      2020-05-20 16:34:52 +08:00 #有意义# | 
|      145TrembleBeforeMe      2020-05-20 16:37:43 +08:00 #需要更好的# | 
|  |      146abcde51111      2020-05-20 16:41:23 +08:00 #有意义# | 
|  |      147skyaiwh      2020-05-20 16:45:23 +08:00 #有意义# | 
|  |      148bravecarrot      2020-05-20 16:46:33 +08:00 via iPhone #无所谓# | 
|  |      149hereIsChen      2020-05-20 16:47:46 +08:00 #有意义# | 
|  |      150Guys      2020-05-20 16:51:46 +08:00 #有意义# | 
|  |      151crll      2020-05-20 16:52:35 +08:00 via iPhone #无所谓# | 
|  |      152xuhp      2020-05-20 16:54:40 +08:00 #有意义# | 
|  |      153SimonOne      2020-05-20 16:57:00 +08:00 #无所谓# | 
|      154jsondog      2020-05-20 16:57:15 +08:00 #没意义# | 
|  |      155Maxbee      2020-05-20 16:58:07 +08:00 #无意义# | 
|  |      156fengyj      2020-05-20 17:00:27 +08:00 #无所谓# | 
|  |      157skyrem      2020-05-20 17:02:11 +08:00 | 
|      158NeedforV2      2020-05-20 17:09:35 +08:00 #有意义# 要是能再简单些就好了 | 
|  |      159hjw45611      2020-05-20 17:09:53 +08:00 看成了股票。。 韭菜的自我修养。 | 
|  |      160xtx      2020-05-20 17:10:34 +08:00 via iPhone | 
|  |      161songsong      2020-05-20 17:15:35 +08:00 #有意义# | 
|  |      162songsong      2020-05-20 17:16:25 +08:00 #没意义# | 
|  |      163littleangel      2020-05-20 17:17:04 +08:00 #没意义# | 
|  |      164zhw2590582      2020-05-20 17:18:55 +08:00 #有意义# | 
|  |      165songsong      2020-05-20 17:20:29 +08:00  1 如果投票条件很长很长,  那么回复投票后, 评论区会变得很很大的一篇无意义的文字, 影响阅读,  建议把抓取改为抓问题 编号, 回复投票 1 2 3 或者 #1 #2 #3 这样使得页面更简洁, 不会让评论变的大篇幅的相同文字 | 
|      166Xi      2020-05-20 17:21:33 +08:00 #有意义# | 
|  |      167inkdie      2020-05-20 17:22:35 +08:00 #有意义# 但是评论区没法看了,太乱了 | 
|  |      168miniwade514      2020-05-20 17:23:23 +08:00 #有意思# | 
|  |      169X3en      2020-05-20 17:24:58 +08:00 #有点厉害# | 
|      170esons      2020-05-20 17:25:16 +08:00 #有意义# | 
|  |      171nostars      2020-05-20 17:28:09 +08:00 #有意义# | 
|  |      172lldld      2020-05-20 17:32:44 +08:00 #有意义# 感谢! 希望站主支持 | 
|  |      173massacreformash      2020-05-20 17:35:28 +08:00 #有意义# 真的能增加么 | 
|  |      174ftu      2020-05-20 17:43:38 +08:00 #有意义# 为啥只看到 5 票 | 
|      175dddiao      2020-05-20 18:00:18 +08:00 #有意义# | 
|  |      176araaaa      2020-05-20 18:03:04 +08:00 #需要更好的# | 
|  |      177maypu      2020-05-20 18:04:15 +08:00 via Android #没意义# #需要更好的# | 
|      178lswl66      2020-05-20 18:05:19 +08:00 #有意义# | 
|      179running17      2020-05-20 18:05:33 +08:00 #有意义# | 
|  |      180zhibushiwo      2020-05-20 18:07:10 +08:00 via Android #没意义# 第一眼看成股票了 lol | 
|      181lneoi      2020-05-20 18:09:35 +08:00 #需要更好的# | 
|      182wdd2007      2020-05-20 18:13:59 +08:00 挺有想法的 | 
|      183h503mc      2020-05-20 18:14:26 +08:00 via iPhone #没意义# 然后评论区就有问题了 | 
|      184NeezerGu      2020-05-20 18:18:14 +08:00 #test##有意义##有意义##有意义##有意义##有意义##有意义##有意义# #没意义##没意义##没意义##没意义##没意义##没意义##没意义##没意义# | 
|      185JmmBite      2020-05-20 18:20:27 +08:00 #HELLO WORLD# | 
|  |      186bl      2020-05-20 18:22:48 +08:00 #需要更好的# | 
|  |      187wzw      2020-05-20 18:25:30 +08:00 via iPhone #有意义# | 
|  |      188tyx1703      2020-05-20 18:27:49 +08:00 #会创建一个新的选项吗?# | 
|  |      189ombr4      2020-05-20 18:31:43 +08:00 #有意义# #需要更好的# | 
|      190neverandy      2020-05-20 18:32:47 +08:00 #需要更好的# | 
|      191leoleoasd      2020-05-20 18:46:00 +08:00 #有意义# | 
|  |      192hobbyliu      2020-05-20 18:54:17 +08:00 #有意义# | 
|      194mayx      2020-05-20 19:03:41 +08:00 via Android 设计的挺有意思,我觉得如果能搞成通用的话就更好了 #无所谓# | 
|  |      195zooo      2020-05-20 19:04:49 +08:00 #有意义#   有看到 v 友自己统计下面的支持的观点 可以把投票门槛设置高点吗 防止乱投票 | 
|  |      196labubu      2020-05-20 19:20:45 +08:00 #有意义# | 
|  |      197Linon      2020-05-20 19:27:26 +08:00 via Android #有意义# | 
|  |      198FuturesXu      2020-05-20 19:29:31 +08:00 #有意义# 很好啊,社区内可以做一些小调查 | 
|  |      1997sj525bL0Wy7FOx9      2020-05-20 19:37:27 +08:00 #有意义# | 
|  |      200xiaominglui      2020-05-20 19:42:11 +08:00 #有意义# |