caicicaici

caici

  1. // ==UserScript==
  2. // @name caicicaici
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.92
  5. // @description caici
  6. // @author ppppp tttt
  7. // @require http://libs.baidu.com/jquery/2.0.0/jquery.js
  8. // @require https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.js
  9. // @match https://mp.weixin.qq.com/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. var caici = `
  17. <div id="caici">
  18. <div id="list_cycle"></div>
  19. <ul id="list">
  20. </ul>
  21. <div class='cg1' data-index='0'>111</div>
  22. <div id="an" >
  23. <div class='cg2'>222</div>
  24. <div class='cg3'>333</div>
  25. <div class='cg4'>444</div>
  26. <div class='id' style="display:none;">-1</div>
  27. </div>
  28.  
  29. <div class="bottom">
  30. <div class="cai"><span>r</span><span>r</span><span>r</span><span>r</span></div>
  31.  
  32.  
  33.  
  34. <div class='hide_btn' onclick='hide()'>隐</div>
  35. <div class='show_btn' onclick=''>显示</div>
  36. <div class='pre_btn' onclick='next(true)'>上</div>
  37. <div class='show_caici'>答</div>
  38. </div>
  39. </div>
  40. <div id="previewImage"></div><a href="#" id="down_img">下载</a>
  41. `;
  42.  
  43. var mini_cycle = `<b id="mini_cycle"></b>`;
  44.  
  45. var css = `
  46. <style>
  47. #mini_cycle, #list_cycle {
  48. position: fixed;
  49. right: 10px;
  50. top: 10px;
  51. display: block;
  52. width: 20px;
  53. height: 20px;
  54. background: #f3d1d170;
  55. font-size: 10px;
  56. font-weight: 100;
  57. border-radius: 10px;
  58. border: 1px solid #ffd8c5;
  59. text-align: center;
  60. line-height: 20px;
  61. z-index:2;
  62. }
  63. #list_cycle{
  64. left:10px;
  65. }
  66. #list{
  67. display:none;
  68. padding-top:33px;
  69. }
  70.  
  71. #caici {
  72. display: none;
  73. position: fixed;
  74. top: 0;
  75. left: 0;
  76. background: white;
  77. width: 100vw;
  78. height: 120vh;
  79. z-index: 1;
  80. }
  81. .hide{display:none;}
  82. .cg1,.cg2,.cg3,.cg4{
  83. font-size:22px;
  84. width:95vw;
  85. text-align:center;
  86. border: 1px solid #b5aeae;
  87. min-height: max-content;
  88. overflow: hidden;
  89. position: relative;
  90. display:grid;
  91. }
  92. #an{
  93. }
  94. .bottom{
  95. display:block;
  96. position:fixed;
  97. bottom:5px;
  98. }
  99. .cai{
  100. text-align: center;
  101. }
  102. .cai .space{
  103. width: 15px;
  104. height: 27px;
  105. display: inline-block;
  106. margin-bottom: -10px;
  107. }
  108. .black_back{
  109. background:black;
  110. }
  111.  
  112. .num{
  113.  
  114. list-style: none;
  115. width: 98vw;
  116. padding: 0;
  117. margin:0;
  118. }
  119. .num li{
  120. display: block;
  121. float: left;
  122. width: 5.3vw;
  123. text-align: center;
  124. height: 33px;
  125. line-height: 33px;
  126. background: darkgrey;
  127. border-right: white 1px solid;
  128. }
  129. .num .select_no{}
  130. .num .select_yes{background: #0a8c7f;}
  131. .num .all{
  132. background: #2196F3;
  133. width: 10vw;
  134. border-right: none;
  135. }
  136.  
  137. .hide_btn, .show_btn ,.pre_btn,.show_caici{
  138. width: 30vw;
  139. height: 40px;
  140. text-align: center;
  141. background: #105413;
  142. line-height: 40px;
  143. font-size: 22px;
  144. color: #fff;
  145. float: left;
  146. margin-left: 1px;
  147. margin-top: 5px;
  148. }
  149. .hide_btn{background: #b4b4b4;width:10vw}
  150. .pre_btn{background: #b4b4b4;width:10vw}
  151. .show_btn{width:60vw}
  152. .show_caici{width:10vw;}
  153.  
  154. #caici_table{
  155. color:#000000;
  156. }
  157. #caici_table td{white-space: nowrap; }
  158. </style>
  159. `;
  160.  
  161. if(! $('#mini_cycle').length){
  162. $('body').append(css).append(mini_cycle).append(caici);
  163. }
  164.  
  165.  
  166. $('#mini_cycle').off('click').click(function(){
  167. $('#caici').toggle();
  168. });
  169.  
  170. var imgs = [];
  171. $('.rich_pages').each(function(i,v){
  172. var src = $(this).data('src');
  173. imgs.push(src);
  174. // console.log(src);
  175. });
  176.  
  177. var title = $('.rich_media_title').text().trim();
  178. if('undefined' != typeof(title)){
  179. var is_caici = title.indexOf('拆词') > 0;
  180. var date = title.substring(1,9);
  181. // console.log(is_caici);
  182. }
  183.  
  184. var words = [];
  185. $('td').each(function(i,v){
  186. var text = $(this).text();
  187. if(typeof text !== 'undefined'){
  188. var t = text.split('.').pop().trim();
  189. words.push(t);
  190. }
  191. });
  192.  
  193. var item1 = {};
  194. item1.title = title;
  195. item1.date = date;
  196. item1.words = words;
  197. item1.imgs = imgs;
  198.  
  199. // var cg = {};
  200. // cg['cg'+date] = item1;
  201.  
  202. var tmp = window.localStorage.__cg;
  203. var obj1 = {};
  204. if(typeof tmp !== 'undefined'){
  205. obj1 = JSON.parse(tmp);
  206. }
  207. // if( typeof(obj['cg'+date]) === 'undefined'){
  208. obj1['cg'+date] = item1;
  209. window.localStorage.__cg = JSON.stringify(obj1);
  210. // console.log(obj1);
  211. // }
  212.  
  213.  
  214. var caici_1 = {};
  215. var caici_2 = {};
  216.  
  217.  
  218.  
  219. var item_obj = item1;
  220. var all_words = words;
  221. var img1_w = 0;
  222. var img1_h = 0;
  223. var img2_w = 0;
  224. var img2_h = 0;
  225.  
  226. var cg = window.localStorage.__cg;
  227. var obj = {};
  228. if('undefined' !== typeof cg){
  229. obj = JSON.parse(cg);
  230. var str = '';
  231. for(var i in obj){
  232. if(obj[i].date != ''){
  233. str += '<li class="'+i+'">'+obj[i].date+'</li>';
  234. }
  235. }
  236.  
  237. $('#list').html(str);
  238. // console.log(obj);
  239. }
  240. $('#list').on('click','li',function(){
  241. $(this).attr('class');
  242. item_obj = obj[i];
  243. all_words = item_obj.words;
  244. });
  245. // function update(i){
  246. // item_obj = obj[i];
  247. // all_words = item_obj.words;
  248. // }
  249.  
  250. $('#list_cycle').click(function(){
  251. $('#list').toggle();
  252. });
  253.  
  254. window.element = $("#caici_jieguo"); // global variable
  255. window.getCanvas; // global variable
  256.  
  257.  
  258.  
  259. $('.show_caici').click(function(){
  260.  
  261. if($('#caici_jieguo').length==0){
  262. $('#meta_content').after('<div id="caici_jieguo" style="background:#ffffff;"></div>');
  263. }
  264.  
  265. var html = $('.rich_media_title').text().trim() + "<table id='caici_table'>";
  266.  
  267. for(var i in all_words){
  268. var str1 = typeof(caici_1[i]) == 'undefined' ? '' : caici_1[i];
  269. var str2 = typeof(caici_2[i]) == 'undefined' ? '' : caici_2[i];
  270. if(str1 == str2){
  271. str2 = '';
  272. }
  273. html += '<tr><td>'+i+'. ' + all_words[i]+'</td><td>'+str1+'</td><td>'+str2+'</td></tr>';
  274. }
  275.  
  276. html += '</table>';
  277.  
  278. $('#caici_jieguo').html(html);
  279.  
  280. html2canvas($('#caici_jieguo'), {
  281. onrendered: function (canvas) {
  282. $("#previewImage").append(canvas);
  283. var imgageData = canvas.toDataURL("image/png");
  284. var newData = imgageData.replace(/^data:image\/png/, "data:application/octet-stream");
  285. $("#down_img").attr("download", $('.rich_media_title').text().trim()+".png").attr("href", newData);
  286. }
  287. });
  288.  
  289. });
  290.  
  291.  
  292. $('.show_btn,.pre_btn').off('click').click(function(){
  293. var i = $('.id').text();
  294. var an = $('#an').hasClass('hide');
  295. var pre = $(this).hasClass('pre_btn');
  296.  
  297.  
  298. if(an){
  299. caici_1[i] = $('.cai').text();
  300. $('#an').removeClass('hide');
  301. }else{
  302. caici_2[i] = $('.cai').text();
  303. if(pre){
  304. i--;
  305. if(i<0){
  306. i=all_words.length;
  307. }
  308. }else{
  309. i++;
  310. if(i>=all_words.length){
  311. i=0;
  312. }
  313. }
  314.  
  315. $('.id').text(i);
  316. var item = all_words[i];
  317. var img1 = item_obj.imgs[0];
  318. var img2 = item_obj.imgs[1];
  319. $('#an').addClass('hide');
  320. $('.cg1').html(item);
  321. $('.cg2').html('<img class="an_img1" src = "" style="width: 100%;">');
  322. $('.cg3').html('<img class="an_img2" src = "'+img2+'" style="width: 100%;position: relative;">');
  323. $('.cg4').html('');
  324. addToCai(item);
  325.  
  326. $('.an_img1').one('load',function(){
  327. var i = Number($('.id').text());
  328. img1_w = $('.an_img1')[0].naturalWidth;
  329. img1_h = $('.an_img1')[0].naturalHeight;
  330. var div_w = $('.cg1').width();
  331. var img1_nw = img1_w * (div_w / img1_w);
  332. var img1_nh = img1_h * (div_w / img1_w);
  333. $('.cg2').height(Math.floor(img1_nh/51));
  334. var t = Math.floor(img1_nh/51*(1+i));
  335. $('.an_img1').attr('style','width:100%;position: relative;top: -'+t+'px');
  336. //$('.an_img1').attr('style="width:100%,top, -'+t+'"');
  337. console.log('img1_w:'+img1_w + 'img1_h:'+img1_h);
  338. }).attr('src', img1);
  339.  
  340. $('.an_img2').one('load',function(){
  341. var i = Number($('.id').text());
  342. img2_w = $('.an_img2')[0].naturalWidth;
  343. img2_h = $('.an_img2')[0].naturalHeight;
  344. var div_w = $('.cg1').width();
  345. var img2_nw = img2_w * (div_w / img2_w);
  346. var img2_nh = img1_h * (div_w / img2_w);
  347. $('.cg3').height(Math.floor(img2_nh/51));
  348. var t = Math.floor(img2_nh/51*(1+i));
  349. $('.an_img2').attr('style','width:100%;position: relative;top: -'+t+'px');
  350. //$('.an_img1').attr('style="width:100%,top, -'+t+'"');
  351. console.log('img1_w:'+img1_w + 'img1_h:'+img1_h);
  352. }).attr('src', img2);
  353.  
  354. // $('.an_img2').one('load',function(){
  355. // img2_w = $('.an_img2')[0].naturalWidth;
  356. // img2_h = $('.an_img2')[0].naturalHeight;
  357. // var div_w = $('.cg1').width();
  358. // img2_w = img2_w * (div_w / img2_w);
  359. // img2_h = img2_h * (div_w / img2_w);
  360. // $('.an_img2').height(img2_h/51*(i+2));
  361. // console.log('img1_w:'+img2_w + 'img1_h:'+img2_h);
  362. // }).attr('src', img2);
  363.  
  364. // $('.cg2').html(item.cg2);
  365. // $('.cg3').html(item.cg3);
  366. // $('.cg4').html(item.cg4);
  367. $('.id').html(i);
  368. }
  369. });
  370.  
  371. $('.cai').on('click', '.space', function(){
  372. if($(this).hasClass('black_back')){
  373. $(this).text('').removeClass('black_back');
  374. }else{
  375. $(this).text(' ').addClass('black_back');
  376. }
  377. });
  378.  
  379. function addToCai(str){
  380. var arr = str.split('');
  381. var tmp_str = arr.join('<span class="space"></span>');
  382. $('.cai').html(tmp_str);
  383. }
  384. /*
  385. function next(pre){
  386. var i = $('.id').text();
  387. var an = $('#an').hasClass('hide');
  388.  
  389. if(an){
  390. $('#an').removeClass('hide');
  391. }else{
  392. if(pre){
  393. i--;
  394. if(i<0){
  395. i=all_words.length;
  396. }
  397. }else{
  398. i++;
  399. if(i>=all_words.length){
  400. i=0;
  401. }
  402. }
  403.  
  404. $('.id').text(i);
  405. var item = all_words[i];
  406. var img1 = item_obj.imgs[0];
  407. var img2 = item_obj.imgs[1];
  408. $('#an').addClass('hide');
  409. $('.cg1').html(item);
  410. $('.cg2').html('<img class="an_img" src = "'+img1+'" style="">');
  411. $('.cg3').html('<img class="an_img" src = "'+img2+'" style="">');
  412.  
  413. // $('.cg2').html(item.cg2);
  414. // $('.cg3').html(item.cg3);
  415. // $('.cg4').html(item.cg4);
  416. $('.id').html(item.i);
  417. }
  418. }
  419. */
  420.  
  421. //获取随机数数组 startcount为起始值 ,maxcount为最大值
  422. function randomArr(startcount, maxcount) {
  423. var arr = [];
  424. for (var i = startcount; i < maxcount; i++) {
  425. arr.push(i);
  426. }
  427. return arr;
  428. }
  429.  
  430. //取出随机数 arr为数组,maxNum为取出随机数的个数
  431. function RandomNumBoth(arr, maxNum) {
  432. var numArr = [];
  433. var arrLength = arr.length;
  434. for (var i = 0; i < arrLength; i++) {
  435. var Rand = arr.length;
  436. //取出随机数
  437. var number = Math.floor(Math.random() * arr.length); //生成随机数num
  438. numArr.push(arr[number]); //往新建的数组里面传入数值
  439. arr.splice(number, 1); //传入一个删除一个,避免重复
  440. if (arr.length <= arrLength - maxNum) {
  441. return numArr;
  442. }
  443. }
  444. }
  445.  
  446. var arr = randomArr(0, all_words.length);
  447. arr = RandomNumBoth(arr, all_words.length);
  448.  
  449. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址