Skip to content

Commit

Permalink
add fun
Browse files Browse the repository at this point in the history
  • Loading branch information
acgotaku committed Mar 21, 2016
1 parent c011439 commit 3174116
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 61 deletions.
39 changes: 36 additions & 3 deletions background.js
Expand Up @@ -133,6 +133,25 @@ function aria2Send(link,url){
});

}
function isCapture(downloadItem){
var fileSize =localStorage.getItem("fileSize");
var white_site =JSON.parse(localStorage.getItem("white_site"));
var black_site =JSON.parse(localStorage.getItem("black_site"));
var url =downloadItem.referrer;
var parse_url=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var result=parse_url.exec(url)[3];
if(black_site.join("|").indexOf(result)> -1){
return false;
}
if(white_site.join("|").indexOf(result)> -1){
return true;
}
if(downloadItem.fileSize > fileSize*1024*1024){
return true;
}else{
return false;
}
}
chrome.contextMenus.onClicked.addListener(function(info, tab) {
console.log(info);
aria2Send(info.linkUrl,info.menuItemId);
Expand All @@ -155,11 +174,10 @@ chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
chrome.downloads.onCreated.addListener(function(downloadItem){
console.log(downloadItem);
var integration =localStorage.getItem("integration");
var fileSize =localStorage.getItem("fileSize");
if(downloadItem.error){
return;
}
if(integration && downloadItem.fileSize > fileSize*1024*1024){
if(integration && isCapture(downloadItem)){
var rpc_list=JSON.parse(localStorage.getItem("rpc_list")||defaultRPC);
console.log("success");
aria2Send(downloadItem.url,rpc_list[0]['url']);
Expand All @@ -178,4 +196,19 @@ chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.create({url:index});
});

});
});

//软件版本更新提示
var manifest = chrome.runtime.getManifest();
var previousVersion=localStorage.getItem("version");
if(previousVersion == "" || previousVersion != manifest.version){
var opt={
type: "basic",
title: "更新",
message: "YAAW for Chrome更新到" +manifest.version + "版本啦~\n此次更新添加白名单和黑名单功能~",
iconUrl: "images/icon.jpg"
};
var id= new Date().getTime().toString();
showNotification(id,opt);
localStorage.setItem("version",manifest.version);
}
6 changes: 6 additions & 0 deletions css/options.css
@@ -0,0 +1,6 @@
textarea{
width: 45%;
}
fieldset{
margin-bottom: 50px;
}
138 changes: 81 additions & 57 deletions js/options.js
@@ -1,59 +1,83 @@
$(function(){
var contextMenus=localStorage.getItem("contextMenus");
if(contextMenus == "true"){
$("#contextMenus").prop('checked', true);
}
var integration=localStorage.getItem("integration");
if(integration == "true"){
$("#integration").prop('checked', true);
}
var fileSize=localStorage.getItem("fileSize")||500;
$("#fileSize").val(fileSize);
var rpc_list=JSON.parse(localStorage.getItem("rpc_list")||'[{"name":"ARIA2 RPC","url":"http://localhost:6800/jsonrpc"}]');
for(var i in rpc_list){
var addBtn=0==i?'<button class="btn" id="add-rpc">Add RPC</button>':'';
var row='<div class="control-group rpc_list"><label class="control-label">JSON-RPC</label><div class="controls"><input type="text" class="input-small" value="'+rpc_list[i]['name']+'" placeholder="RPC Name"><input type="text" class="input-xlarge rpc-path" value="'+rpc_list[i]['url']+'" placeholder="RPC Path">'+addBtn+'</div></div>';
if($(".rpc_list").length>0){
$(row).insertAfter($(".rpc_list").eq(i-1));
}else{
$(row).appendTo($("fieldset"));
}
}
$("#add-rpc").on("click",function(){
var rpc_form='<div class="control-group rpc_list">'+
'<label class="control-label">JSON-RPC</label>'+
'<div class="controls">'+
'<input type="text" class="input-small" placeholder="RPC Name">'+
'<input type="text" class="input-xlarge rpc-path" placeholder="RPC Path"></div></div>';
$(rpc_form).insertAfter($(".rpc_list"));
});
$("#save").on("click",function(){
var rpc_list=[];
var jsonrpc_history=[];
for(var i=0;i<$(".rpc_list").length;i++){
var child=$(".rpc_list").eq(i).children().eq(1).children();
if(child.eq(0).val()!= ""&&child.eq(1).val()!= ""){
rpc_list.push({"name":child.eq(0).val(),"url":child.eq(1).val()});
jsonrpc_history.push(child.eq(1).val());
var config =(function(){
return {
init:function(){
var self =this;
var contextMenus=localStorage.getItem("contextMenus");
if(contextMenus == "true"){
$("#contextMenus").prop('checked', true);
}
var integration=localStorage.getItem("integration");
if(integration == "true"){
$("#integration").prop('checked', true);
}
var fileSize=localStorage.getItem("fileSize")||500;
$("#fileSize").val(fileSize);
var rpc_list=JSON.parse(localStorage.getItem("rpc_list")||'[{"name":"ARIA2 RPC","url":"http://localhost:6800/jsonrpc"}]');
for(var i in rpc_list){
var addBtn=0==i?'<button class="btn" id="add-rpc">Add RPC</button>':'';
var row='<div class="control-group rpc_list"><label class="control-label">JSON-RPC</label><div class="controls"><input type="text" class="input-small" value="'+rpc_list[i]['name']+'" placeholder="RPC Name"><input type="text" class="input-xlarge rpc-path" value="'+rpc_list[i]['url']+'" placeholder="RPC Path">'+addBtn+'</div></div>';
if($(".rpc_list").length>0){
$(row).insertAfter($(".rpc_list").eq(i-1));
}else{
$(row).insertAfter($("fieldset").children().eq(2));
}
}
var black_site =JSON.parse(localStorage.getItem("black_site"));
if(black_site){
$("#black-site").val(black_site.join("\n"));
}
var white_site =JSON.parse(localStorage.getItem("white_site"));
if(white_site){
$("#white-site").val(white_site.join("\n"));
}
$("#add-rpc").on("click",function(){
var rpc_form='<div class="control-group rpc_list">'+
'<label class="control-label">JSON-RPC</label>'+
'<div class="controls">'+
'<input type="text" class="input-small" placeholder="RPC Name">'+
'<input type="text" class="input-xlarge rpc-path" placeholder="RPC Path"></div></div>';
$(rpc_form).insertAfter($(".rpc_list")[0]);
});
$("#save").on("click",function(){
self.save();
});
$("#reset").on("click",function(){
localStorage.clear();
location.reload();
});
},
save:function(){
var rpc_list=[];
var jsonrpc_history=[];
for(var i=0;i<$(".rpc_list").length;i++){
var child=$(".rpc_list").eq(i).children().eq(1).children();
if(child.eq(0).val()!= ""&&child.eq(1).val()!= ""){
rpc_list.push({"name":child.eq(0).val(),"url":child.eq(1).val()});
jsonrpc_history.push(child.eq(1).val());
}
}
localStorage.setItem("rpc_list", JSON.stringify(rpc_list));
localStorage.setItem("jsonrpc_history", JSON.stringify(jsonrpc_history));
if($("#contextMenus").prop('checked') == true){
localStorage.setItem("contextMenus", true);
}else{
localStorage.setItem("contextMenus", false);
}
if($("#integration").prop('checked') == true){
localStorage.setItem("integration", true);
}else{
localStorage.setItem("integration", false);
}
var fileSize=$("#fileSize").val();
localStorage.setItem("fileSize", fileSize);
var black_site =$("#black-site").val().split("\n");
localStorage.setItem("black_site", JSON.stringify(black_site));
var white_site =$("#white-site").val().split("\n");
localStorage.setItem("white_site", JSON.stringify(white_site));
}
}
localStorage.setItem("rpc_list", JSON.stringify(rpc_list));
localStorage.setItem("jsonrpc_history", JSON.stringify(jsonrpc_history));
if($("#contextMenus").prop('checked') == true){
localStorage.setItem("contextMenus", true);
}else{
localStorage.setItem("contextMenus", false);
}
if($("#integration").prop('checked') == true){
localStorage.setItem("integration", true);
}else{
localStorage.setItem("integration", false);
}
var fileSize=$("#fileSize").val();
localStorage.setItem("fileSize", fileSize);
});
$("#reset").on("click",function(){
localStorage.clear();
location.reload();
});
});
};
})();
config.init();
});

2 changes: 1 addition & 1 deletion manifest.json
Expand Up @@ -18,5 +18,5 @@
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"permissions": [ "cookies", "tabs", "notifications", "activeTab", "contextMenus", "downloads", "<all_urls>"],
"name": "__MSG_appName__",
"version": "0.0.3"
"version": "0.0.4"
}
13 changes: 13 additions & 0 deletions options.html
Expand Up @@ -7,6 +7,7 @@
<link href="yaaw/img/favicon.ico" rel="shortcut icon" type="image/ico" />
<link href="yaaw/css/bootstrap.min.css" rel="stylesheet" />
<link href="yaaw/css/bootstrap-responsive.min.css" rel="stylesheet" />
<link href="css/options.css" rel="stylesheet" />
<style type="text/css">
body,html {
height: 100%;
Expand Down Expand Up @@ -81,6 +82,18 @@

</div>
</div>
<div class="control-group">
<label class="control-label" for="white-site">网站白名单</label>
<div class="controls">
<textarea rows="6" id="white-site"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="black-site">网站黑名单</label>
<div class="controls">
<textarea rows="6" id="black-site"></textarea>
</div>
</div>
</fieldset>
</div>
</div>
Expand Down

0 comments on commit 3174116

Please sign in to comment.