| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /**
- * diag-post-verify.js — 评论是否真的发出去了?用评论列表做地面真相校验
- *
- * 思路:发评论前后各抓一次评论列表的可见文案,做差集。
- * 只有在"发布后新出现"的文案才算真凭实据——比只看计数可靠得多
- * (实测遇到过计数不刷新、但评论确实已发布的情况)。
- *
- * 会真的发一条评论(用 config 的评论池第一条)。不点"发送"以外的任何写操作。
- */
- var cfg = TikTokAuto.config.resolve({ runtime: { dryRun: false } });
- var t = TikTokAuto.tiktok;
- var l = TikTokAuto.layout;
- var w = TikTokAuto.wait;
- function visibleTexts(limit) {
- var texts = className('android.widget.TextView').find();
- var out = [];
- for (var i = 0; i < texts.size(); i += 1) {
- var node = texts.get(i);
- if (!l.isVisible(node)) {
- continue;
- }
- var value = l.text(node);
- if (value && value.length >= 2) {
- out.push(value);
- }
- if (out.length >= limit) {
- break;
- }
- }
- return out;
- }
- function openCommentList() {
- if (t.panelInput() !== null) {
- return true;
- }
- var button = t.commentButton();
- if (!button) {
- return false;
- }
- TikTokAuto.ui.clickNode(button, 'diag');
- return w.waitFor('diag', function () {
- return t.panelInput() !== null ? true : null;
- }, 8000, 200) === true;
- }
- function closePanel() {
- if (t.panelInput() !== null) {
- back();
- w.tick(600);
- }
- }
- function diff(before, after) {
- var added = [];
- for (var i = 0; i < after.length; i += 1) {
- if (before.indexOf(after[i]) === -1) {
- added.push(after[i]);
- }
- }
- return added;
- }
- // ---- 就位:必须在播放页 ----
- if (t.pageState() !== 'player') {
- console.log('DIAG 当前不在播放页(' + t.pageState() + '),尝试打开第一个卡片');
- var cards = t.videoCards();
- console.log('DIAG 卡片数=' + cards.length);
- if (cards.length > 0) {
- TikTokAuto.ui.clickNode(cards[0].container, 'diag');
- TikTokAuto.player.waitPlayerReady(cfg, 'diag');
- }
- }
- console.log('DIAG state=' + t.pageState() + ' count=' + t.commentCount());
- // ---- 发布前:抓一次评论列表 ----
- console.log('DIAG 打开评论列表(发布前)…');
- openCommentList();
- var before = visibleTexts(30);
- console.log('DIAG 发布前可见文案 ' + before.length + ' 条:' + JSON.stringify(before.slice(0, 12)));
- closePanel();
- // ---- 发布 ----
- var text = cfg.comments.pool[0];
- console.log('DIAG 准备发布:' + JSON.stringify(text) + ',发布前计数=' + t.commentCount());
- var result = TikTokAuto.comment.post(cfg, text, 'diag');
- console.log('DIAG 发布返回:' + JSON.stringify(result));
- // ---- 发布后:再抓一次评论列表 ----
- w.tick(2500);
- console.log('DIAG 发布后计数=' + t.commentCount());
- console.log('DIAG 打开评论列表(发布后)…');
- openCommentList();
- var after = visibleTexts(30);
- console.log('DIAG 发布后可见文案 ' + after.length + ' 条:' + JSON.stringify(after.slice(0, 12)));
- console.log('DIAG 新增文案=' + JSON.stringify(diff(before, after)));
- console.log('DIAG 目标文案在列表里=' + (after.indexOf(text) !== -1));
|