From 8b5936d465b113d4fcad33f49590cdc7ad4cca04 Mon Sep 17 00:00:00 2001 From: flatgreen Date: Thu, 15 Aug 2019 19:54:16 +0200 Subject: [PATCH] Initial commit (before Mozilla) --- .gitignore | 1 + background.js | 133 ++++++++++++++++++++++++++++++++++++++++++ icons/urltojd2-19.png | Bin 0 -> 973 bytes icons/urltojd2-38.png | Bin 0 -> 1797 bytes icons/urltojd2-48.png | Bin 0 -> 2284 bytes icons/urltojd2-96.png | Bin 0 -> 4736 bytes manifest.json | 51 ++++++++++++++++ options/options.html | 19 ++++++ options/options.js | 29 +++++++++ 9 files changed, 233 insertions(+) create mode 100644 .gitignore create mode 100644 background.js create mode 100644 icons/urltojd2-19.png create mode 100644 icons/urltojd2-38.png create mode 100644 icons/urltojd2-48.png create mode 100644 icons/urltojd2-96.png create mode 100644 manifest.json create mode 100644 options/options.html create mode 100644 options/options.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cc786a9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +doc/ \ No newline at end of file diff --git a/background.js b/background.js new file mode 100644 index 0000000..c1afbbc --- /dev/null +++ b/background.js @@ -0,0 +1,133 @@ +var JD2_API_URL = 'http://localhost:9666/flashgot?'; +var JD2_REFERER = 'localhost'; +var JD2_MATCH_URL = "*://*/flashgot?*"; + + +function onError(error) { + console.log('UrlToJD2_error: ' + error); +} + +// On startup, check autostart option stored setting or default value +const gettingStoredSettings = browser.storage.local.get(); +gettingStoredSettings.then((item) => { + if (!item.autostart) { + browser.storage.local.set({ autostart: true }) + } +}, + onError); + + +function makeRequest(url) { + var req = new XMLHttpRequest(); + req.open('GET', url, true); + req.send(null); + req.onload = function () { + // console.log(req.status); + if (req.readyState === 4 && req.status === 200) { + // console.log(req.responseText); + // notify... + } else { + onError(req.statusText); + } + } +} + +function urlConstruct(url, autostart) { + return JD2_API_URL + "autostart=" + autostart + "&urls=" + url; +} + + +function bool_to_int(bool) { + return (bool == true) ? 1 : 0; +} + +// main +function loadTabUrlToJD2Crawl(storedSettings) { + var gettingActiveTab = browser.tabs.query({ active: true, currentWindow: true }); + gettingActiveTab.then((tabs) => { + if (tabs[0]) { + currentTabUrl = tabs[0].url; + url_for_JD2 = urlConstruct(currentTabUrl, bool_to_int(storedSettings.autostart)); + // console.log(url_for_JD2); + makeRequest(url_for_JD2); + } + }, onError); +} + + +browser.pageAction.onClicked.addListener(() => { + const gettingStoredSettings = browser.storage.local.get(); + gettingStoredSettings.then(loadTabUrlToJD2Crawl, onError); +}); + + +// menu +const sendToJD2Id = "send-to-JD2"; +function onCreated() { + if (browser.runtime.lastError) { + onError(browser.runtime.lastError); + } +} + +browser.menus.create({ + id: sendToJD2Id, + title: "send to JD2", + contexts: ["link"] +}, onCreated); + + +browser.menus.onClicked.addListener((info, tab) => { + if (info.menuItemId === sendToJD2Id) { + const gettingStoredSettings = browser.storage.local.get(); + gettingStoredSettings.then((storedSettings) => { + url_for_JD2 = urlConstruct(info.linkUrl, bool_to_int(storedSettings.autostart)); + makeRequest(url_for_JD2); + }, onError); + } +}); + +function updateMenuItem(link) { + browser.menus.update(sendToJD2Id, { + title: `Send to JD2: "${link}"` + }); + browser.menus.refresh(); +} + +browser.menus.onShown.addListener(info => { + if (!info.linkUrl) { + return; + } + updateMenuItem(info.linkUrl); +}); + + +// Some functions for a good referer ! + +// https://stackoverflow.com/a/11602753 +function mod_headers(header_array, p_name, p_value) { + var did_set = false; + for (var i in header_array) { + var header = header_array[i]; + var name = header.name; + // var value = header.value; + // If the header is already present, change it: + if (name == p_name) { + header.value = p_value; + did_set = true; + } + } + // if it is not, add it: + if (!did_set) { header_array.push({ name: p_name, value: p_value }); } +} + +function rewriteHeader(e) { + mod_headers(e.requestHeaders, 'Referer', JD2_REFERER); + // for (var header of e.requestHeaders) { console.log(header.name + '::' + header.value); } + return { requestHeaders: e.requestHeaders }; +} + +browser.webRequest.onBeforeSendHeaders.addListener( + rewriteHeader, + { urls: [JD2_MATCH_URL] }, + ["blocking", "requestHeaders"] +); diff --git a/icons/urltojd2-19.png b/icons/urltojd2-19.png new file mode 100644 index 0000000000000000000000000000000000000000..401fd509ff87fd515c97c5749e0bf11d305e63f0 GIT binary patch literal 973 zcmV;;12X)HP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+T%*C$V}r>00R>fE)!F83o}bIGXo$nu{5zXN(3@2 z3?RS=Od1-PfJq3)7%FFoD$WI$fC4T6Pni@ZoSG)l00009a7bBm000XU000XU0RWnu z7ytkRA4x<(R5;6(lu>MxRTRg6=YDNh+A%iR+OALrG9DO7152<);#NsC@x_SaL1JX# zVbKQ|nt&vR1QXOm)WioBqS+o6BSFyzqeM(#vM3vrnW@VZ36a5|-3EqrtQ~E?@A}ZL zZl%?Dp3XhzfB*OX&pG!B|6x-X8+HloKp3(t9jy*s|GXU5D3_=YN46|pv8wZ%!OFJh zS`sZHYysJxa5erB&H67Bi&@2cRB>Q=Xlu|Hikt`e0c78w6OM<6t~mh^LF%fkPwQ=q zuhfUPZc9WPUeuQ!T2hkC7mBo*=nEpUd4BxVPws;MO4N6Nz4*4CB_@4`N0B`GYTUsZUm5_d(PERws+zBzQvlxJ<8Be@DMbV@F=Y_F z>MX41hycF2R4Lou^rs6lmCNi9B=B!ty>WZtIq9tM+KF0T>G3c!=Ga$|=?g^$MWneD ziPNq*yknB5Hr-ng@9gq&dMH;*4QW@#@Tj`h)=ClCP>RUEG|TaqZ#_T+&^S-3fFtF| zhLt^O^OqWt(ApGV?7vA<;64DBhKpAg{nORv833x?CU!%E)&Ygxl47Fv$Q0eX<1DQ- z0k}J(c;T3jJzXBMW)8l#KFxc(#`&OQoQx@;m8jY5Oe`lGD(spgJ12Ox?G84j0T{ks z!81oz&^O{Dku(??b1b;sXXmT(b(67N1HzG?m)DrV_dCW}pO*!2;>RjpKe>!_R@k_D zmbZ6K5~$4-^0yNPkwYuVWF%{d-D?2sZLev3>-ot?8tQVu*^F@TcpXPi*I?$W5Wj2V z+=z?heZ|V!3~r~U`)oD+mlpw?x^>}9xBS(=I%pW?porK2Mknobc6s^zrlai48A|hL zQ;J_lE4VYQEG9nfkYJR#9TlJ00000NkvXXu0mjfG}^#Y literal 0 HcmV?d00001 diff --git a/icons/urltojd2-38.png b/icons/urltojd2-38.png new file mode 100644 index 0000000000000000000000000000000000000000..1c78d0be99f942f65eb5d8de0c1b3b316070a90f GIT binary patch literal 1797 zcmV+g2m1JlP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+T%*C$V}r>00R>fE)!F83o}bIGXo$nu{5zXN(3@2 z3?RS=Od1-PfJumu8C1>?Rh$bh0R>zDP=6FIhzw)=00009a7bBm000XU000XU0RWnu z7ytkUS4l)cR9M5kSZQojRTw?rdo#>*9j2u-9lEmBun4t4+mX^~*+DQ>q+o;~)c__U z2xuY^V?;wpY@&@(8)XqhC=DVFC=ihrTAV^z$}Ryc4PBwzEL~>iz3UHPm|^yodjHLP z_q*@R_nq(Db1$Kfqy1F8lH|0H7`x1fT_m2WYHx+!8k2j?(wB7!&tP<%NjOe~DfR~p zoea1EVn-DdYd8GAz;rr^x`$8U7)xH4)3Rv!w2thjr!c_Ai--$NyW7~`z(|ueWf~)K z83A(uQUHK5R6zOXwUF@4CE&XwimP88j@St++tzTd?18@@;{2Vc(PqtzPS3gkV#f&d z`eRT4&}QPHzbSVcmzLBs8lWvq!qsZhv-6eXrzxILAo00g1B=hdP-@b$iooa(0*&)D z@9?=$x6j8Vc0;AGfe1kW*2<;A^|(oy^9+^o8v*fhYh`R^z`)d6-59G)QU#)1UuFOE zQV1+I*C{*)%uX@ee}~FN%~#7F90W(75s_5FaX+ws6Xbpai=L>PKq8d^G}NC`8@f1@ zUk`HoZcd5`05C*l#lCg*m_E+z@DC`-_yC*y0v4OD8xEe15K%-Ro$>p5_vIX$(1S&j z3@Bb-hhfof^PAg@5s9CIAnD8YRCYB8-B#baZ4(Gz?2p9S9V&G8Z~*Ye;E7X{T!6)->S6(U zrB53#0ZX$wd~&S0LxLp*8tg1pfH8Y8FLJ`WF2DqEi~5qS5SfUAye6!f+Xl`{!YXeD zA!kbr&fk%{+aDKV!2;g7lpK4xx1bWE9_rJKWZ&GX_$LT0M&47(RfF$6NV5Y=(COr0 zNbQx$7~P5D59%;nEjQGNuQKDywH; z;Kn>DrO3wx0w`D}qTsD2teM*i&Wo@JqWcDUyhVBNVX<~#j0p;VLB&7f(@ZaXve*b4 z_e9}9Wth)$as*_J?nGpm@GxTp1%SZ1aPr7b9Q6BY7kmCSUrre0n=pztjqz^Cqsr_;8mB?Pl(g zG|16r=AjG`T-MvWw$8rRN4uk(cD5&_B;51Hr?2yxuy&qjP=W{)99CjwVYD3-09XaW z(TgE&V;-;7V&rkC%E^`7vuBL6gx!JEYy}{7;?p22zFppg5niOA&CFx{4i(C8xOy@9 z0ETXh_w8xl=`d%5Nw{VQ)^P4nrzS1y0*LHdHhEMh@|Sw&)1|vItlp|deVa2?HA)+n z=nR;jZot40&+%3pVfRVrzGDI^oXF2OIz$Yq{_^RUQ{mYBYov>vjtUpBVSWpyK5zCK z4*Ohz|0FTT&s_M*;R7Q!ccqfl}-)ayr83IRE( zM$Fe5kr?G(P;>KRP+jAw>uh_2zBJFt!M2yj4QntDsEUcO4fOP}nr10hZB^rD{eXZR z$M|90SdebStP~UE(ua1Ux<-cF{1~Sy5+|nApDw#-2WC2(I70;610cd%+BfWug0ZXj z9x^;g#OxFka$hv!rxOa4ICLWe4mRpfmtPWr?I#?(Q!j_1i$hUG zIEpI5K@QYp3|$fu*Sj1>7y}ur;(r7v&++Ab1CRH&t8w<09Q`|JRfGPoZ`_`e#GAuq z#&+v*B1{5+s@rn5W}BKEyQY5z+tr{iUHY(^ZqAil(ybm&;N~;NY5{z?qEJ1zxr6WS zS4dzbN<;J8PlIxMu57Ius)(3yrvm_@wb_|q*iXQqet@+@X=q+??V9@wKA*>#Xl-@^ z7=9)o;~4=mGhkh#zO>NWET052-K*&^X(#RsGni``!vrD<>m?$Q0YxBswNYPs{Fz?d z#ipkRS($7h2U-TA4FB%eSQ7*71rrJzD^FhU_p45|cDjmV!Xz-346sB7C<#O$bTh^p n0Nfzr^bK*5)hI3&0$u+m}4 literal 0 HcmV?d00001 diff --git a/icons/urltojd2-48.png b/icons/urltojd2-48.png new file mode 100644 index 0000000000000000000000000000000000000000..22249a532157e6013151e5e86fa16738006ea82f GIT binary patch literal 2284 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+T%*C$V}r>00R>fE)!F83o}bIGXo$nu{5zXN(3@2 z3?RS=Od1-PfJrbghDrhXDB@gj2`JzK08eBTB;Nw@m;e9(32;bRa{vGf6951U69E94 zoEQKA2t7$eK~!ko%~^X;ROc1{ox2Yn3oN+cK6ptqKB|dg5LO%oOspn$rc?#3$)uTT z(y1EFv=b-Oj?rX9Ys#dp(M)S%JJfV)RIDbQhGZNCjRZw1S~cpV3MeisAc2Kt+1-0j z{{YlwUw2`NJ^$@~-@V`OeCKzbmoN&_Rh#~62GW>ufr#qj68QpUG&)A(EEIW#&l1%E^qfEN0MP3sRMcw% z-rNtex(6+m0K%JUDdL(TCx0mbv{k1h+w9$^I?tu84ai;Dw?6ynOp0>X1N3u%WIb1L zUK4PA!IM3MtQ!;~5gmMGUDg4$N;n6iYyl{_S2r$wL<$(P^Oi}HbeaegLa|u&)hKlI zDEwc_7Ⓢd!~mM=5^8b7ut#dG7Q)%Rw43U_Cxoe3K+}|%7l zJ%cn-D;e9LZ^fpfHmDSy>46AO+iKHRg{**ac3vSd_6Fj5F!|TNV*;)(%ItwL!HvJY zb_Yw$wm|V_M|W+SQFatc&MufP349tL%}7G6O3662wFwCt(eIvahk%$!DR_cpKB~=b zDhz6Y^t`-CNxkxYe%2ir*!pye1ahPoeJ{%=vkK70~D8jU&dg(Wu#b93drroVXN? zrSGKR>)Yy~@7m~B0Rh5Gps-b_0DuT3W9!ORtXb3{YriM~?|w1{YxWq>X%~DIQ40;T z3(|f100Yaz*&vM7irBTf1=Gj%$?N3o0@m-<V-gsL!cmR-?Q2R|}a7qeT>_s7ogn8it|Kqt`D0|g{q`1(cPP|5hd6JCQneo(w zMT;Ul6kx{8kpfpM86_)Qv8A{TYUS|S-REX@%ZUoH-S?d1J$!({kJAWRPd2wZ|jgn3eLa3e^P$uo=+ z>4pP-`J66%w7~+s)-5Zcm6YqS=ZpA&`xeja@%nFaveP4zOW=eNHT6mby;g@A&(bm=9R(#W<#`QaDOf)(DMx&CIZO9tmixgeIWq8U=e>7G^(aZtQ&m4t*6n zbW6LZ4=~>h2BoaJ_f17@D9*LXI`C?<8teD!(b%dA=o9TW1rmc?hA07Lm0GW)tt4C=;saF6K71fC zPQnJH-w~2$gl&39T>R zItjcbdH6tMRn@l)R1M|39PrKelz9I4CZFI3o!Qnaz|x_Fy-z;+8&(xgUybsS#BlUM zLVmcpP8~;T1qwG8w`2X{4p}#K>g#Cybhi;rZGoG(yPZl@UXI3JtF*XjRU=*_!j#}1 zI+^p3-4$bSp&?@Eb#zI+s#kifH(Xw0mBW9WI$oFHx|aD^U(h*_#K8L%3E2Hv0;FMn zrpOrULSc>#OU*W~$ky!;FmF?uS0~57A6jZoyyi6*>Zu)R^Zc zrzrxjeyE3~Bdne0ebL2=D9pB@qCN)A?L*JtQcF$c>t2&NOTAtb?TkE0 zEls}lXu;!8mNS*__*?dh^x9bsWz4*TnK$apjfEXu%6tGf9}RZiV@XR~JK%zThh{+~ zHTM~lTNICgFzY)b4fw5=n##8Wf%nS9eg{ssZrI{e4IeR7@c^1kE39WK zKae}N3`z7kdHDi_ogh3B?nuL+zd+^sRm+!OwuUly4PEl`lm>@l1(EayKvPEyoN$0e zDzVm{xE$)^BcsCR&4RI_GM6E&0O5xuqYN2HiY@}`7&xE=9k^X{ym`0~!pG&JB89%` zZmK|vOt3VOiA)5<4S1voLK~QyAkd` zaB^>EX>4U6ba`-PAZ2)IW&i+q+T%*C$V}r>00R>fE)!F83o}bIGXo$nu{5zXN(3@2 z3?RS=Od1-PfJrbggGvGUDB@gj2`JzK08kYaDv@1vy#N3J32;bRa{vGf6951U69E94 zoEQKA5z$FRK~#9!?Ol0%ROPvT-ZOia$)3z)Wm8a)H6$S{NdPrg^hbptEmDeby{K1e zuUP$ADMi~_t6s4`6w!)>Rz;!}H$+mw0VD|_vPqPkEMy@GStgUrWMUf6kft&iUTwyzlpJ-#3JQf{wBQH#xy02wZBj@#%)h@TL(XD!S3nLH*@HTlXf9 zCn!pYAOLIzqlG~y0PG{6RN-)zhUoQ;7+zr~0{=*W%;0_FRAz2G2GD?Bzr(0w@EIcd zihwVf`H)_)AE5NQ&L0Vo0qtdJzXk9IkI7^HhKLR^P^v#&`2x*>^G5=_fVnhfxJbf5 zA}D;A@YL|}l{CYQ){5+uL#tQjT5J*h9{*hw_6<>K{OA*^#p`S`E9t4G3mN4 zukRfhDylc`ju`9|g&7V9ejT1Xa7ai>>PbsYW#iSp2vcHq-cVy^ZXq1bBLE%(Nbl(& zyDD^Wir!n#gh&UjPqAIp2-1MCK!C8%n3cEPn3X#bSRq_>1Q;hyPc>%dy)KG445HZ} zgn7M+HmGr`LFK*L3&89N=F1jCQUk~ZXqO?&^ocQR>R5NV@dfl|S}EfY6^xzw1MyC!wgq^KTalCrd1Ez?&K zO5wLbOF(kgv>P1I7K88<5wvoSZK?=Cx5Ilgq}Pea9@^!~KU9KfNw-~jATcxV_DkLX zZ-Sz&EOjXZTR?~g@SBd(w9&yuKu(U*keTGu9E=*dqrLoU>r9wl?CT!fFclJyt&)Apls?5oe0s0 z_(g6TURhF)_z2$$X3TU`duZBxNql*8gF)k_M|7$jI|(!rL4ddjC$=rGMuDZS%Ts8s{GIIt1cn(2W%KYqb2yBjEdMs`S zgxO)~HDAd>z>xfW4UzDVK)IXlV6h7L>|kh6Jj>TLYU|D;AyXqV&V1mmNlY>Uoh`PX z6EF!ujI9R(O8_(QZb>)_o=ws&USs^FY+g{}_-Qes!g-WHF~LkgRG1T{C#s}Jt}>#l zoA6{|EH>{Ahx39nW*0<^Kf8CwL7z2%72>ahUHAad(xJfauS5F$zGu#RlXz%Ic=CXv zj+!&oUTc7Yu*{!%eYvs!v=*%v|2KO$oP_`TFdFy1k^pm;(0ghKSmDalyCfiC!j19F zycqomtro%Opv)bb%?d18Yrrc-k#M+A1m?tNO&Q^(2G|RT5ZPaZF9^WA$?eFxw#%;? zcKe@`vFmGTMu9+T1r-15xffJWpfFT7R`g|o#TTfRjK^m;qaeFo=9I#B_WrHidOW>3 z2G(xRZouG9jfRtY>cHzYWtvdcm`;Qt{XzJN(GILy*nm-9wkx`Wxl6$B-;Tvc<=)kx z2^3IBjq0M_ENhF}*0 z=2<~)?+N(Xq;{;kug-76-}8+QcRrUSgYW@jnh=wn9VSTwk}{`XBa(AyunJ$NX8dkW z6J}06+aC1=F`$1Ox>){%|Ew)#f2L)r=NQ-RaF_4LZ0)T z?Rfov>U^%(dW!tf7TJm)#AJ*;Ss(9m4Nz*kqnx1lV5zz2)Qsh`n=osFIWSr`*b1FS zM5j%LwSW+=QY!`lsOwb&oB|EL*ef4!Bt$x}{(;(n2_FE$v?6X9W07%08tc*o2_g*+ z2H|I1W5uS2YWvLIyTZ&2`Le4FzQH8{EMQQe{rfrDW~{rv4u(iaP?*8%Q*7>gLnSjn z16>oqJTOobRS3ZE3YxHTZlkoe@jf&|lZMH2+yoJlT)Uw}ae=b;|NK=gem2=Z$+RZ3 zZ#4pUUDO^R$~6Iul)e`Jr~x)?e&j614zkKVwo@dm{v--ZUN%7VL8;P*SUoaBYGtoC zGq?}L`UrH<-mib4)-U;-R*QfoYZI_~OB9aPsZo30`+eyG0XL4axSda0oE?9f*NDjy z_b~^I0IiDg{*sKH6(L{%HalUJPcwFIkc1YYMiK7V~C;KYpuO4y#qyuLa}&yD{dWYLDXfY(`qNYzC(J)zVgaw zna=?<%pby^JEcDlA(ck0aF@7eUa4jeQT!IPdj+mfqTehi9Jeb&)k4 z2|;sv?;aO3T3yEhzHiHtO#hnSNmQz4+dMEz6sKHMzCa~(GXsr7zLh^Rill5xUG^>ynC;xd( z-<(yW^tiij39fgk0mQ;7xgKcjAS()&`NzL+XjNk2YU73891r#iix(Sck4 zpGgqJ{VoYmbfL+qMH2`fZ@Ny1bYRuObAB;7ZJh#EY>dO!1EFr!TuSOg&eP&7RsnyP z;CeE%&FN59xFn$RpsC%EnOj5fY}fm!0XDq+-}Qb;DV%Ij;eH=`b98FPdK>D7R2$xV zd>WGk+BSOw&*NJV?6AkqGaBO8iMUrE-0uCpg>p~(YN2pAs| z?!=mV>XARjB73{m(ONYYzhuP0Gg`lyidKsPJ1as^xJQruXS9e7cft_qgy2It>eB4NKe0EuhH4Cr3`?1FRZJmkg&t487lW?uzUjg&jk! zq-ZZodtM;iM<7}EeAYB8@xW^dsHoN;7$7pR@1z#xr!JVLsW)_Deoh+(8@hXpZJ2?z z+obPXB;c7!lgaAh`ek{IJ;_N9mGB0Ea^#+D(ZNtG-x!OQ4h4c43gJQ^H)C7}W~6r@ zCj7gFyShn*TmO^{n}lQ_gO7zpYDb>fy45C$084pFxBx?XM?yfD}@wyug`3~)6X=MP?<(xoEhXN129*@%F zI-j$cfrLOnYMdSC+7wb-)ywNNVirs$m)?u=vK-JaMWSLNlBHzyLUu!oy_c$&*>C_4W~NG2A+fjbbUO&oz8{S@cIl-Y-E#H5 z`^xn26{p{aaWw84ni(RTY)n9D$`h+OS0z0;4 zh{h0Sf7Qv@967%7y~_?H6^vPVPXKuA2SWmLp@OUnYD!9cI-W~bVHq=Xf5k+9AwYc< z3tj}#n!1~(EcMpx_>BMnf-yU9Iy z{sAEKD)Mxyh=sfA_HN%L=eT}J%$v_vo=??}-(XXBY8aeOM9O|Fc_$NX>Spav8uu0* zmwR}BFPM~&nVTVi{szMEez-u_gT#C5lH)&=%jEPm0RVusoE)vqMhgI1L4dIz82b(Y z&#A5As>*}@{j=vjeItitU6Hm^{(m7a{2k<-)W)i3`&z`q~@fm^EtF+Fo zf%;$hpji}+Bp{Q4VPMt~NC9F2pq|JP!4R3)Nel;rj)QnFK`0X#dzD&eRi(+)h9F8F z_8+&fpg>`$tBV$FnkW{;a1r8_jRU0UBo@q0(cThgi9cUaQP>^q)B1n;466nX`=3w% O0000"], + "default_title": "Send current url to JD2" + }, + + "permissions": [ + "activeTab", + "*://*/flashgot?*", + "webRequest", + "webRequestBlocking", + "storage", + "menus" + ], + + "options_ui": { + "page": "options/options.html", + "browser_style": true + } + +} \ No newline at end of file diff --git a/options/options.html b/options/options.html new file mode 100644 index 0000000..3fae68e --- /dev/null +++ b/options/options.html @@ -0,0 +1,19 @@ + + + + + + + + +
+

Autostart

+ + +
+ + + + + + \ No newline at end of file diff --git a/options/options.js b/options/options.js new file mode 100644 index 0000000..51846b7 --- /dev/null +++ b/options/options.js @@ -0,0 +1,29 @@ +function onError(error) { + console.log('UrlToJD2_options_error: ' + error); +} + +// autostart +var chck_autostart = document.getElementById("autostart"); + + +chck_autostart.onchange = function () { + if (chck_autostart.checked) { + browser.storage.local.set({ autostart: true }); + } else { + browser.storage.local.set({ autostart: false }); + } +} + + +// Update the options UI or default setting +function updateUI(restoredSettings) { + if (restoredSettings.autostart == undefined) { + chck_autostart.checked = true; //default + } else { + chck_autostart.checked = restoredSettings.autostart; + } +} + +// On opening the options page +const gettingStoredSettings = browser.storage.local.get(); +gettingStoredSettings.then(updateUI, onError); \ No newline at end of file