daily pastebin goal
57%
SHARE
TWEET

Duolingo Dictionary Script by CyberZero, v0.6 (2014.02.14.)

a guest Jun 9th, 2014 258 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name                        Duolingo Dictionary Script by CyberZero
  3. // @namespace           http://cyberzero.tk/
  4. // @version                     0.6
  5. // @description         Megmutatja a felhasználó saját szótárát
  6. // @match                       http://www.duolingo.com/*
  7. // @match                       https://www.duolingo.com/*
  8. // @require             http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  9. // @copyright           2014.02.14., CyberZero
  10. // ==/UserScript==
  11.  
  12. /*
  13. Ha segíteni szeretnél a program más nyelvekre való fordításában, akkor
  14. megtalálsz a FB-on.
  15.  
  16. If you would like to help in translating the program to other languages,
  17. you can find me on FB.
  18.  
  19. https://www.facebook.com/TheCyberZero
  20. */
  21.  
  22. //névtelen függvény a biztonság kedvéért
  23. (function(){
  24.     //css formázás
  25.     GM_addStyle(               
  26.                 '.szotartabla{width:260px; table-layout:fixed; word-break: break-all; word-wrap: break-word; margin-top:20px;}'+
  27.                 '.szotartabla tr{width:260px;}'+
  28.                 '.szotartabla td{width:130px; text-align:center;}'
  29.         );
  30.        
  31.         //globális változók
  32.         var nyelv='en',
  33.                 nyelv2='en',
  34.                 tartalmazoElem,
  35.                 szavak=[],
  36.                 szohalmaz=[],
  37.                 egyedi=[],
  38.                 szavakszama=0,
  39.                 osszeslekeres=0,
  40.                 lekereseddig=0,
  41.                 htmlke='',
  42.                 szovegek={
  43.             'en':{
  44.                                 betolto:'Loading...',
  45.                                 szazalek:'Loaded: ',
  46.                                 nemvolt:'You haven\'t learned a word yet.',
  47.                                 szotar:'Dictionary',
  48.                                 elrejtes:'Hide',
  49.                 nyomtatas:'Print',
  50.                                 ab      :'Abkhazian',
  51.                                 aa      :'Afar',
  52.                                 af      :'Afrikaans',
  53.                                 sq      :'Albanian',
  54.                                 am      :'Amharic',
  55.                                 ar      :'Arabic',
  56.                                 hy      :'Armenian',
  57.                                 as      :'Assamese',
  58.                                 ay      :'Aymara',
  59.                                 az      :'Azerbaijani',
  60.                                 ba      :'Bashkir',
  61.                                 eu      :'Basque',
  62.                                 bn      :'Bengali, Bangla',
  63.                                 dz      :'Bhutani',
  64.                                 bh      :'Bihari',
  65.                                 bi      :'Bislama',
  66.                                 br      :'Breton',
  67.                                 bg      :'Bulgarian',
  68.                                 my      :'Burmese',
  69.                                 be      :'Byelorussian',
  70.                                 km      :'Cambodian',
  71.                                 ca      :'Catalan',
  72.                                 zh      :'Chinese',
  73.                                 co      :'Corsican',
  74.                                 ht      :'Croatian',
  75.                                 cs      :'Czech',
  76.                                 da      :'Danish',
  77.                                 nl      :'Dutch',
  78.                                 en      :'English, American',
  79.                                 eo      :'Esperanto',
  80.                                 et      :'Estonian',
  81.                                 fo      :'Faeroese',
  82.                                 fj      :'Fiji',
  83.                                 fi      :'Finnish',
  84.                                 fr      :'French',
  85.                                 fy      :'Frisian',
  86.                                 gb      :'Gaelic (Scots Gaelic)',
  87.                                 gl      :'Galician',
  88.                                 ka      :'Georgian',
  89.                                 de      :'German',
  90.                                 el      :'Greek',
  91.                                 kl      :'Greenlandic',
  92.                                 gn      :'Guarani',
  93.                                 gu      :'Gujarati',
  94.                                 ha      :'Hausa',
  95.                                 iw      :'Hebrew',
  96.                                 hi      :'Hindi',
  97.                                 hu      :'Hungarian',
  98.                                 is      :'Icelandic',
  99.                                 in      :'Indonesian',
  100.                                 ia      :'Interlingua',
  101.                                 ie      :'Interlingue',
  102.                                 ik      :'Inupiak',
  103.                                 ga      :'Irish',
  104.                                 it      :'Italian',
  105.                                 ja      :'Japanese',
  106.                                 jw      :'Javanese',
  107.                                 kn      :'Kannada',
  108.                                 ks      :'Kashmiri',
  109.                                 kk      :'Kazakh',
  110.                                 rw      :'Kinyarwanda',
  111.                                 ky      :'Kirghiz',
  112.                                 rn      :'Kirundi',
  113.                                 ko      :'Korean',
  114.                                 ku      :'Kurdish',
  115.                                 lo      :'Laothian',
  116.                                 la      :'Latin',
  117.                                 lv      :'Latvian, Lettish',
  118.                                 ln      :'Lingala',
  119.                                 lt      :'Lithuanian',
  120.                                 mk      :'Macedonian',
  121.                                 mg      :'Malagasy',
  122.                                 ms      :'Malay',
  123.                                 ml      :'Malayalam',
  124.                                 mt      :'Maltese',
  125.                                 mi      :'Maori',
  126.                                 mr      :'Marathi',
  127.                                 mo      :'Moldavian',
  128.                                 mn      :'Mongolian',
  129.                                 na      :'Nauru',
  130.                                 ne      :'Nepali',
  131.                                 no      :'Norwegian',
  132.                                 oc      :'Occitan',
  133.                                 or      :'Oriya',
  134.                                 om      :'Oromo, Afan',
  135.                                 ps      :'Pashto, Pushto',
  136.                                 fa      :'Persian',
  137.                                 pl      :'Polish',
  138.                                 pt      :'Portuguese',
  139.                                 pa      :'Punjabi',
  140.                                 qu      :'Quechua',
  141.                                 rm      :'Rhaeto-Romance',
  142.                                 ro      :'Romanian',
  143.                                 ru      :'Russian',
  144.                                 sm      :'Samoan',
  145.                                 sg      :'Sangro',
  146.                                 sa      :'Sanskrit',
  147.                                 sr      :'Serbian',
  148.                                 sh      :'Serbo-Croatian',
  149.                                 st      :'Sesotho',
  150.                                 tn      :'Setswana',
  151.                                 sn      :'Shona',
  152.                                 sd      :'Sindhi',
  153.                                 si      :'Singhalese',
  154.                                 ss      :'Siswati',
  155.                                 sk      :'Slovak',
  156.                                 sl      :'Slovenian',
  157.                                 so      :'Somali',
  158.                                 es      :'Spanish',
  159.                                 su      :'Sudanese',
  160.                                 sw      :'Swahili',
  161.                                 sv      :'Swedish',
  162.                                 tl      :'Tagalog',
  163.                                 tg      :'Tajik',
  164.                                 ta      :'Tamil',
  165.                                 tt      :'Tatar',
  166.                                 te      :'Tegulu',
  167.                                 th      :'Thai',
  168.                                 bo      :'Tibetan',
  169.                                 ti      :'Tigrinya',
  170.                                 to      :'Tonga',
  171.                                 ts      :'Tsonga',
  172.                                 tr      :'Turkish',
  173.                                 tk      :'Turkmen',
  174.                                 tw      :'Twi',
  175.                                 uk      :'Ukrainian',
  176.                                 ur      :'Urdu',
  177.                                 uz      :'Uzbek',
  178.                                 vi      :'Vietnamese',
  179.                                 vo      :'Volapuk',
  180.                                 cy      :'Welsh',
  181.                                 wo      :'Wolof',
  182.                                 xh      :'Xhosa',
  183.                                 ji      :'Yiddish',
  184.                                 yo      :'Yoruba',
  185.                                 zu      :'Zulu'                
  186.                         },
  187.                         'hu':{
  188.                                 betolto:'Betöltés folyamatban...',
  189.                                 szazalek:'Betöltve: ',
  190.                                 nemvolt:'Még nem tanultál meg szavakat.',
  191.                                 szotar:'Szótár',
  192.                                 elrejtes:'Elrejtés',
  193.                 nyomtatas:'Nyomtatás',
  194.                                 ab      :'Abház',
  195.                                 aa      :'Messze',
  196.                                 af      :'Afrikaans',
  197.                                 sq      :'Albán',
  198.                                 am      :'Amhara',
  199.                                 ar      :'Arab',
  200.                                 hy      :'Örmény',
  201.                                 as      :'Asszámi',
  202.                                 ay      :'Aymara',
  203.                                 az      :'Azerbajdzsáni',
  204.                                 ba      :'Baskír',
  205.                                 eu      :'Baszk',
  206.                                 bn      :'Bengáli, Bangla',
  207.                                 dz      :'Bhutani',
  208.                                 bh      :'Bihari',
  209.                                 bi      :'Bislama',
  210.                                 br      :'Breton',
  211.                                 bg      :'Bolgár',
  212.                                 my      :'Burmai',
  213.                                 be      :'Belorusz',
  214.                                 km      :'Kambodzsai',
  215.                                 ca      :'Katalán',
  216.                                 zh      :'Kínai',
  217.                                 co      :'Korzikai',
  218.                                 ht      :'Horvát',
  219.                                 cs      :'Cseh',
  220.                                 da      :'Dán',
  221.                                 nl      :'Holland',
  222.                                 en      :'Angol, amerikai',
  223.                                 eo      :'Eszperantó',
  224.                                 et      :'Észt',
  225.                                 fo      :'Feröer-szigetek',
  226.                                 fj      :'Fidzsi-szigetek',
  227.                                 fi      :'Finn',
  228.                                 fr      :'Francia',
  229.                                 fy      :'Fríz',
  230.                                 gb      :'Gael (skót gael)',
  231.                                 gl      :'Galíciai',
  232.                                 ka      :'Grúz',
  233.                                 de      :'Német',
  234.                                 el      :'Görög',
  235.                                 kl      :'Greenlandic',
  236.                                 gn      :'Guarani',
  237.                                 gu      :'Gudzsaráti',
  238.                                 ha      :'Hausza',
  239.                                 iw      :'Héber',
  240.                                 hi      :'Hindi',
  241.                                 hu      :'Magyar',
  242.                                 is      :'Izlandi',
  243.                                 in      :'Indonéz',
  244.                                 ia      :'Interlingua',
  245.                                 ie      :'Interlingue',
  246.                                 ik      :'Inupiak',
  247.                                 ga      :'Ír',
  248.                                 it      :'Olasz',
  249.                                 ja      :'Japán',
  250.                                 jw      :'Jávai',
  251.                                 kn      :'Kannada',
  252.                                 ks      :'Kasmíri',
  253.                                 kk      :'Kazah',
  254.                                 rw      :'Kinyarwanda',
  255.                                 ky      :'Kirgiz',
  256.                                 rn      :'Kirundi',
  257.                                 ko      :'Koreai',
  258.                                 ku      :'Kurd',
  259.                                 lo      :'Laothian',
  260.                                 la      :'Latin',
  261.                                 lv      :'Lett, lett',
  262.                                 ln      :'Lingala',
  263.                                 lt      :'Litván',
  264.                                 mk      :'Macedóniai',
  265.                                 mg      :'Madagaszkári',
  266.                                 ms      :'Maláj',
  267.                                 ml      :'Malayalam',
  268.                                 mt      :'Máltai',
  269.                                 mi      :'Maori',
  270.                                 mr      :'Marathi',
  271.                                 mo      :'Moldvai',
  272.                                 mn      :'Mongol',
  273.                                 na      :'Nauru',
  274.                                 ne      :'Nepáli',
  275.                                 no      :'Norvég',
  276.                                 oc      :'Okszitán',
  277.                                 or      :'Oriya',
  278.                                 om      :'Oromo, Afan',
  279.                                 ps      :'Pastu, Pushto',
  280.                                 fa      :'Perzsa',
  281.                                 pl      :'Lengyel',
  282.                                 pt      :'Portugál',
  283.                                 pa      :'Pandzsábi',
  284.                                 qu      :'Quechua',
  285.                                 rm      :'Rétoromán',
  286.                                 ro      :'Román',
  287.                                 ru      :'Orosz',
  288.                                 sm      :'Szamoai',
  289.                                 sg      :'Sangro',
  290.                                 sa      :'Szanszkrit',
  291.                                 sr      :'Szerb',
  292.                                 sh      :'Szerb-horvát',
  293.                                 st      :'Sesotho',
  294.                                 tn      :'Setswana',
  295.                                 sn      :'Shona',
  296.                                 sd      :'Szindhi',
  297.                                 si      :'Szingaléz',
  298.                                 ss      :'Szinghaléz',
  299.                                 sk      :'Szlovák',
  300.                                 sl      :'Szlovén',
  301.                                 so      :'Szomáliai',
  302.                                 es      :'Spanyol',
  303.                                 su      :'Szudáni',
  304.                                 sw      :'Szuahéli',
  305.                                 sv      :'Svéd',
  306.                                 tl      :'Tagalog',
  307.                                 tg      :'Tádzsik',
  308.                                 ta      :'Tamil',
  309.                                 tt      :'Tatár',
  310.                                 te      :'Tegulu',
  311.                                 th      :'Thai',
  312.                                 bo      :'Tibeti',
  313.                                 ti      :'Tigrinya',
  314.                                 to      :'Tonga',
  315.                                 ts      :'Tsonga',
  316.                                 tr      :'Török',
  317.                                 tk      :'Türkmén',
  318.                                 tw      :'Twi',
  319.                                 uk      :'Ukrán',
  320.                                 ur      :'Urdu',
  321.                                 uz      :'Üzbég',
  322.                                 vi      :'Vietnami',
  323.                                 vo      :'Volapük',
  324.                                 cy      :'Walesi',
  325.                                 wo      :'Wolof',
  326.                                 xh      :'Hosza',
  327.                                 ji      :'Jiddis',
  328.                                 yo      :'Joruba',
  329.                                 zu      :'Zulu   '
  330.                         }
  331.                 };
  332.        
  333.         //a html body eleme
  334.         var test=document.querySelector('body');
  335.        
  336.         //ha már betöltodött a body és az osztalya global-valami alakú, akkor kinyerjük belole a nyelvet
  337.     var talalatok=test.className.match(/global-(\w+)/) ;//["global-hu", "hu"]
  338.     if(test&&talalatok){
  339.                 nyelv=talalatok[1]; //hu
  340.         }
  341.  
  342.     //készítünk egy div-et, beletöltjük a paraméterben megadott html kódot
  343.         //és visszatérünk az elso gyermekével, amit a htmlKod-ban töltünk bele
  344.     function elkeszit(htmlKod) {
  345.         var kulso=document.createElement('div');
  346.         kulso.innerHTML=htmlKod;
  347.         return kulso.firstChild;
  348.     }
  349.        
  350.         //nyelv alapján betölti a megadott szöveget a tömbbol
  351.         //kicseréli benne a helyettesítoket (pl.: %fhn%-t a felhasznalonev-re)
  352.         //és visszaadja a szöveget végeredményül
  353.         function szovegBetoltes(mit) {
  354.         var kinyert;
  355.         if (szovegek[nyelv] && szovegek[nyelv][mit]) //ha léteezik a nyelv az adatok között és a szöveg is benne amit keresünk
  356.                                 kinyert=szovegek[nyelv][mit]; //akkor azt megadja
  357.         else if (szovegek.en[mit]) //ha nem, akkor megnézi, hogy az alap szövegekben benne van-e amit keresünk
  358.                                 kinyert=szovegek.en[mit]; //ha igen akkor azt adja meg
  359.         else kinyert=mit;//ha nem, akkor a mit paramétert írja be amire rákerestünk                
  360.                 return kinyert;
  361.     }
  362.  
  363.         //készítünk egy html elemet az elkeszit függvénnyel
  364.         //majd a szelektora alapján megkeressük az elemet
  365.         //ha létezik akkor
  366.         //a keresett elem szüloje elé beszúrja a tartalmazó elemet
  367.         //egy új divet szúr be (tartalmazoElem) a keresett szüloje és
  368.         //a fában, a keresett elem azonos szintjén lévo ot követo csomópont közé
  369.         function tartalmazoElemKeszit(keresettSzelektora,osztalya){
  370.         tartalmazoElem=elkeszit(
  371.                         '<div class="'+osztalya+'">'+
  372.                                 szovegBetoltes('betolto')+
  373.                         '</div>'
  374.                 );
  375.         var keresett=document.querySelector(keresettSzelektora);
  376.         if(keresett)keresett.parentNode.insertBefore(tartalmazoElem, keresett.nextSibling);
  377.     }
  378.        
  379.          //az AJAx-tól itt kapjuk meg a valaszt
  380.         function visszacsatolas(valasz){ //a saját szótáram rekurzívan kinyerve
  381.                 try{
  382.                         var adat=JSON.parse(valasz.responseText);       //a valaszban lévo JSON-kód tömb
  383.                        
  384.                         var aktualis=adat.vocab.map(
  385.                                 function(szo){
  386.                                         return szo['forms_data'].map(
  387.                                                 function(urlap){
  388.                                                         return [urlap['surface_form'], urlap['skill']['language'], urlap['pos_key'], urlap['skill']['short'], urlap['strength'].toFixed(8)];
  389.                                                 });
  390.                                 });
  391.                        
  392.                         szavak=szavak.concat.apply(szavak,aktualis);
  393.                         szavakszama+=adat.vocab.length; //ebben még duplikálás van
  394.                        
  395.                         if(adat.vocab.length==0){
  396.                                 if(szavak.length>0){
  397.                                         szavak=szavak.filter(
  398.                                                 function(el,i,a){
  399.                                                         if(i==a.indexOf(el)) return 1;
  400.                                                 return 0}
  401.                                         );
  402.                                                                
  403.                                         //halmazzá alakítjuk, hogy minden csak egyszer szerepeljen benne és összefuzzük sztirnggé
  404.                                        
  405.                                         //var osszefuz='';
  406.                                         $.each(szavak, function(i, el){
  407.                                                 if($.inArray(el[0], egyedi) === -1){
  408.                                                         egyedi.push(el[0]);
  409.                                                         szohalmaz.push(el);
  410.                                                         //osszefuz+=el[0]+'+';
  411.                                                 }
  412.                                         });
  413.                                        
  414.                                         var osszefuzesek=[];
  415.                                         var hanyszor=Math.floor(egyedi.length/10);
  416.                                         var maradek=egyedi.length%10;
  417.                                         for(i=0;i<hanyszor;i++){
  418.                                                 osszefuzesek[i]='';
  419.                                                 for(var j=0; j<10; j++){
  420.                                                         osszefuzesek[i]+=egyedi[i*10+j]+"+";                                                   
  421.                                                 }
  422.                                                 osszefuzesek[i]=osszefuzesek[i].slice(0,-1);
  423.                                         }
  424.                                         if(maradek>0){
  425.                                                 osszefuzesek[hanyszor]='';
  426.                                                 for(i=0;i<maradek;i++){                                        
  427.                                                         osszefuzesek[hanyszor]+=egyedi[hanyszor*10+i]+"+";
  428.                                                 }
  429.                                                 osszefuzesek[hanyszor]=osszefuzesek[hanyszor].slice(0,-1);
  430.                                         }                                      
  431.                                                                        
  432.                                         nyelv2=szohalmaz[0][1]; //az elso elem nyelve a nyelv
  433.                                        
  434.                                         egyedi=[];     
  435.                                         osszeslekeres=osszefuzesek.length;
  436.                                         for(i=0;i<osszeslekeres;i++){
  437.                                                 ajaxKeres("http://d.duolingo.com/words/hints/"+nyelv2+"/"+nyelv+"?format=new&sentence="+osszefuzesek[i]+"&cache=true&_="+(new Date().getTime()),visszacsatolas2);
  438.                                         }                                                                      
  439.                                 } else {
  440.                                         tartalmazoElem.innerHTML=szovegBetoltes('nemvolt');
  441.                                 }
  442.                         } else {
  443.                                 tartalmazoElem.innerHTML=szovegBetoltes('szazalek')+Math.round(100*szavakszama/adat.vocab_count)+"%";
  444.                                 ajaxKeres("http://www.duolingo.com/words?page="+(adat.page+1)+"&sort_by=word&desc=false&_="+(new Date().getTime()),visszacsatolas);
  445.                         }
  446.         } catch(e){ //hiba esetén kiírjuk a log-ba
  447.                         console.log('Hiba!');
  448.             console.log(e.message);
  449.             if(e.stack) console.log(e.stack);
  450.                 }
  451.         }
  452.        
  453.         function visszacsatolas2(valasz){ //a jelentések
  454.                 try{
  455.                         var adat=JSON.parse(valasz.responseText);
  456.                        
  457.                         //magyar értékek kiszurése egy asszociációs tömbbe
  458.                         //amelynek kulcsai az angol szava
  459.                         //és hozzájuk egy tömb tartozik a magyar jelentésekkel     
  460.                         for(i=0;i<adat.tokens.length;i++){
  461.                                 if(adat.tokens[i]['hint_table']!=null){
  462.                                         //hogy a length foglalt szóra ne akadjon ki kulcsként
  463.                                         //és azért végére írom a cz-t, hogy az abc sorrendet ne szúrja el
  464.                                         var bovitett=adat.tokens[i].value+'cz';
  465.                                         egyedi[bovitett]=[];
  466.                                         for(j=0;j<adat.tokens[i]['hint_table']['rows'].length;j++){                                    
  467.                                                 for(z=0;z<adat.tokens[i]['hint_table']['rows'][j]['cells'].length;z++)
  468.                                                         if(adat.tokens[i]['hint_table']['rows'][j]['cells'][z]['hint'])
  469.                                                                 egyedi[bovitett].push(adat.tokens[i]['hint_table']['rows'][j]['cells'][z]['hint']);
  470.                                         }
  471.                                 };
  472.                         }
  473.  
  474.                         lekereseddig++;
  475.                         if(lekereseddig==osszeslekeres) vegezetul();
  476.                        
  477.                 } catch(e){ //hiba esetén kiírjuk a log-ba
  478.                         console.log('Hiba!');
  479.             console.log(e.message);
  480.             if(e.stack) console.log(e.stack);
  481.                 }
  482.         }
  483.        
  484.         function vegezetul(){
  485.                 //többszöri magyar értékek kiszurése
  486.                 for (var kulcs in egyedi){             
  487.                         var seged=[];
  488.                         $.each(egyedi[kulcs], function(i, el){
  489.                                 if($.inArray(el, seged) === -1) seged.push(el);
  490.                         });
  491.                         egyedi[kulcs]=seged;
  492.                 }
  493.                
  494.                 //szótár elkészítése                              
  495.                 htmlke+='<table class="szotartabla" border="1px black">'+
  496.                                 '<tr><th>'+szovegBetoltes(nyelv2)+'</th><th>'+szovegBetoltes(nyelv)+'</th></tr>';
  497.                 for (var kulcs in egyedi){
  498.                         htmlke+='<tr>';                        
  499.                         var javitott=kulcs.slice(0,-2); //levágjuk a CZ-t, amit beraktunk, hogy ne okozzon hibát a length foglalt szó
  500.                         if(egyedi[kulcs].length<=1){
  501.                                 htmlke+='<td>'+javitott+'</td><td>'+egyedi[kulcs][0]+'</td>';
  502.                                 htmlke+='</tr>';
  503.                         } else {
  504.                                 htmlke+='<td rowspan="'+egyedi[kulcs].length+'">'+javitott+'</td><td>'+egyedi[kulcs][0]+'</td>';
  505.                                 htmlke+='</tr>';
  506.                                 for(i=1;i<egyedi[kulcs].length;i++)
  507.                                         htmlke+='<tr><td>'+egyedi[kulcs][i]+'</td></tr>';
  508.                         }                                                                      
  509.                 }
  510.                 htmlke+='</table>';
  511.                
  512.                 //kiürítjük a tartalmazo elembol a betöltés feliratot
  513.                 tartalmazoElem.innerHTML='';
  514.                 tartalmazoElem.appendChild(elkeszit(
  515.                 '<iframe id="nyomtatni"></iframe>'));
  516.                         //$('#nyomtatni').contents().find('body').innerHTML='KAKA';
  517.                         //$('#nyomtatni').contents().find('body').append(elkeszit(htmlke));
  518.                         //itt kéne a nyomtatni div-be másolni a táblázatot
  519.                                 //de a FF hibás ezért rá kell rakni egy gombnyomásra
  520.                
  521.                 tartalmazoElem.appendChild(elkeszit(
  522.                 '<a id="szotarkibe" class="btn btn-primary btn-block btn-lg" href="javascript:;">'+szovegBetoltes('szotar')+'</a>'));
  523.                 tartalmazoElem.appendChild(elkeszit(
  524.                 '<a id="nyomtatas" class="btn btn-primary btn-block btn-lg" href="javascript:;">'+szovegBetoltes('nyomtatas')+'</a>'));
  525.                 tartalmazoElem.appendChild(elkeszit(htmlke));
  526.  
  527.                 $('#nyomtatni').hide(); //frame
  528.                 $('.szotartabla').hide();
  529.                 $('#nyomtatas').hide(); //gomb
  530.                
  531.                 $('#szotarkibe').click(
  532.                         function(){
  533.                                 //ide került a nyomtatni div urítése és feltöltése
  534.                                 $('#nyomtatni').contents().find('body').innerHTML='';
  535.                                 $('#nyomtatni').contents().find('body').append(elkeszit(htmlke));
  536.                                 kattintas(1);
  537.                         }
  538.                 );
  539.                
  540.                 $('#nyomtatas').click(
  541.                         function(){
  542.                                 kattintas2();
  543.                         }
  544.                 );
  545.         }
  546.        
  547.         function kattintas(szov){
  548.                 if(szov==1){
  549.                         $('#szotarkibe').text(szovegBetoltes('elrejtes'));
  550.                         $('#szotarkibe').click(
  551.                                 function(){
  552.                                         kattintas(0);
  553.                                 }
  554.                         );
  555.                        
  556.                         //kinézetváltás
  557.                         $('#szotarkibe').removeClass("btn-primary");
  558.                         $('#szotarkibe').addClass("btn-standard");
  559.                        
  560.                         $('.szotartabla').show();
  561.             $('#nyomtatas').show();
  562.                 }else{
  563.                         $('#szotarkibe').text(szovegBetoltes('szotar'));
  564.                         $('#szotarkibe').click(
  565.                                 function(){
  566.                                         kattintas(1);
  567.                                 }
  568.                         );
  569.                        
  570.                         //kinézetváltás
  571.                         $('#szotarkibe').removeClass("btn-standard");
  572.                         $('#szotarkibe').addClass("btn-primary");
  573.                        
  574.                         $('.szotartabla').hide();
  575.             $('#nyomtatas').hide();
  576.                 }
  577.         }
  578.        
  579.     function kattintas2(){     
  580.         $('#nyomtatni').get(0).contentWindow.print();
  581.     }
  582.    
  583.         function ajaxKeres(url,cb){
  584.                 GM_xmlhttpRequest({
  585.                         method: "GET",
  586.                         url:    url, //lekérjük a felhasználó adatlapját
  587.                         onload: cb
  588.                 });
  589.         }
  590.  
  591.         function mukodj(){
  592.                 if (typeof jQuery === "function") {
  593.                         //ezzel ellenörzöm, hogy készen áll-e már az oldal
  594.                         //ha már létezik az elem, csak akkor folytatódik, egyébként kilép
  595.                         if(document.querySelector('.szotar')){return;} 
  596.                        
  597.                         //ha egy másik fülre kattint majd vissza, akkor újra nyerje ki a szólistát
  598.                         //ne az eddigiekhez adja hozzá
  599.                         szavak=[];
  600.                         szohalmaz=[];
  601.             egyedi=[];
  602.                         szavakszama=0;
  603.                         osszeslekeres=0;
  604.                         lekereseddig=0;
  605.                         htmlke='';
  606.                        
  607.                         //ebbol az elembol tudjuk meg, hogy melyik oldalon vagyunk
  608.                         //ha még nem áll készen akkor kilépünk (az idozítés miatt újra próbálkozik)
  609.                         var app=document.querySelector('#app');
  610.                         if(!app){return;}
  611.                        
  612.                         if(app.className.match(/\bhome\b/)){ //ha a fooldalon lapon vagyunk                    
  613.                                 //a megadott elembe elkészítjük az új divünket a betöltés felirattal
  614.                                 tartalmazoElemKeszit('#app .sidebar-progress','szotar');
  615.                                
  616.                                 //kérés a szerverhez amiben lekérjük az adatait
  617.                                 ajaxKeres("http://www.duolingo.com/words?page=1&sort_by=word&desc=false&_="+(new Date().getTime()),visszacsatolas);
  618.                         }
  619.                 } else {
  620.                         jQueryBetolto("1.9.1");
  621.                 }
  622.         }
  623.        
  624.         function jQueryBetolto(verzio) {
  625.                 var jqVersion   = verzio || "1.7.2";
  626.                 var D           = document;
  627.                 var targ        = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
  628.                 var scriptNode  = D.createElement ('script');
  629.                 scriptNode.src  = 'http://ajax.googleapis.com/ajax/libs/jquery/'
  630.                                                 + jqVersion
  631.                                                 + '/jquery.min.js';
  632.                 targ.appendChild (scriptNode);
  633.         }      
  634.        
  635.  
  636.    
  637.         //az oldal AJAXot használ oldalváltáshoz, ettol kezdve 2 másodpercenként elindul a "mukodj"
  638.         //1mp-el az oldal betöltodése után, ha gyorsabban betöltodne
  639.         //azonnali betöltodés (ha véletlenül készen állna rá az odal már az elején)
  640.         window.setInterval(mukodj,2000);
  641.     window.setTimeout(mukodj,1000);
  642.     mukodj();
  643. })();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top