main.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /**
  2. * @Author HonorLee (dev@honorlee.me)
  3. * @Version 1.0 (2019-04-21)
  4. * @License MIT
  5. */
  6. var bg;
  7. $(function(){
  8. $('.loading').addClass('on').find('p').text('词库读取中,请稍后...');
  9. chrome.runtime.getBackgroundPage(function(background){
  10. bg = background;
  11. buildNormalList();
  12. buildStarList();
  13. $('.showTimeSets input').val(bg.setting.timerMin);
  14. });
  15. chrome.runtime.onMessage.addListener(function(msg){
  16. if(msg=="updateStarList") buildStarList();
  17. })
  18. $('.tabContent .list').on('click','li a.info',function(){
  19. var word = $(this).parents('li').data('word');
  20. bg.showWordInfo(word);
  21. });
  22. $('.tabContent .list').on('click','li a.star',function(){
  23. var word = $(this).parents('li').data('word');
  24. var nowType = $(this).data('star');
  25. if(nowType=='undefined') nowType = 0;
  26. var toType = Math.abs(nowType-1);
  27. bg.starWord(toType,word);
  28. $(this).data('star',toType);
  29. $(this).html('<i class="fa fa-star'+(toType==1?'':'-o')+'"></i>');
  30. });
  31. $('.title a.minimize').click(function(){
  32. chrome.app.window.current().minimize();
  33. });
  34. $('.title a.close').click(function(){
  35. chrome.app.window.current().close();
  36. });
  37. $('.tabContent .search').on('keyup',function(){
  38. var word = $(this).val();
  39. $(this).parent().find('.list li').hide().filter(":contains('"+word+"')").show();
  40. });
  41. $('.tabs a').click(function(){
  42. $(this).addClass('on').siblings().removeClass('on');
  43. $('.tabContent').removeClass('on').eq($(this).index()).addClass('on');
  44. });
  45. $("#clickme").click(function (source) {
  46. $("#my_file").trigger('click');
  47. })
  48. $("#my_file").on('change',function(){
  49. $('.loading').addClass('on').find('p').text('词库导入中,请稍后...');
  50. var wordCount = 0;
  51. var file = $('#my_file')[0].files[0];
  52. var reader = new FileReader();
  53. reader.readAsText(file, "utf-8");
  54. reader.onload = function (e) {
  55. var tmpArr = e.target.result.split("\n");
  56. var word;
  57. if(tmpArr.length>0){
  58. for(var i = 0;i<tmpArr.length;i++){
  59. word = (tmpArr[i]).toLowerCase();
  60. if(!bg.wordDataObj[word]){
  61. wordCount++;
  62. bg.wordDataObj[word] = {testCount:0}
  63. bg.wordDataArr.push(word);
  64. }
  65. // wordsObj[word] = {testCount:0}
  66. };
  67. if(wordCount>0) bg.wordDataArr.sort();
  68. }
  69. chrome.storage.local.set({wordsArr:bg.wordDataArr,wordsObj:bg.wordDataObj},function(e){
  70. chrome.notifications.create('importNotifi'+(new Date().getTime()),{iconUrl:'../asset/img/logo@x128.png',message:'词库导入成功\n本次共导入['+wordCount+']个新单词',type:'basic',title:'导入完成!'});
  71. $('.loading').removeClass('on');
  72. // console.log('导入完成',e);
  73. buildNormalList();
  74. })
  75. }
  76. });
  77. $('.settings a.save').click(function(){
  78. bg.setting = {
  79. timerMin:$('input[name=showTime]').val()
  80. }
  81. chrome.storage.local.set({setting:bg.setting},function(e){
  82. bg.setTimer();
  83. chrome.notifications.create('importNotifi'+(new Date().getTime()),{iconUrl:'../asset/img/logo@x128.png',message:'设置已保存',type:'basic',title:'设置已保存!'});
  84. $('.loading').removeClass('on');
  85. })
  86. });
  87. });
  88. function buildNormalList(listIndex){
  89. $('.total .list ul').empty();
  90. $('.loading').addClass('on').find('p').text('词库读取中,请稍后...');
  91. var dom = ''
  92. if(bg.wordDataArr.length) bg.wordDataArr.forEach( function(word) {
  93. var starType = bg.wordDataObj[word]['isStar'];
  94. if(starType==undefined) starType=0;
  95. dom += '<li name="'+word+'" data-word="'+word+'">'+word+'<div class="btn"><a class="info" title="查看详情"><i class="fa fa-comment-o"></i></a><a class="star" data-star="'+starType+'" title="加入收藏"><i class="fa fa-star'+(starType==1?'':'-o')+'"></i></a><a class="del" title="移出词库"><i class="fa fa-trash-o"></i></a></div></li>';
  96. });
  97. $('.total .list ul').append(dom);
  98. $('.tabs a:eq(0) span').text('('+bg.wordDataArr.length+')');
  99. $('.loading').removeClass('on');
  100. }
  101. function buildStarList(listIndex){
  102. $('.starList .list ul').empty();
  103. $('.loading').addClass('on').find('p').text('收藏词库读取中,请稍后...');
  104. var dom = ''
  105. if(bg.wordStarArr.length) bg.wordStarArr.forEach( function(word) {
  106. var starType = bg.wordDataObj[word]['isStar'];
  107. if(starType==undefined) starType=0;
  108. dom += '<li data-word="'+word+'">'+word+'<div class="btn"><a class="info" title="查看详情"><i class="fa fa-comment-o"></i></a><a class="star" data-star="'+starType+'" title="加入收藏"><i class="fa fa-star'+(starType==1?'':'-o')+'"></i></a><a class="del" title="移出词库"><i class="fa fa-trash-o"></i></a></div></li>'
  109. });
  110. $('.starList .list ul').append(dom);
  111. $('.tabs a:eq(1) span').text('('+bg.wordStarArr.length+')');
  112. $('.loading').removeClass('on');
  113. buildNormalList();
  114. }