» »

Firefox, Greasemonkey - oznaciti doloceni torrent site v txt kot ze obiskan - in displayati kasneje

Vapo1 ::

ok - zdaj sem ugotovil kako lahko z exstensionom zapisujem fajl na disku in berem (v Fierefoxu)

var file = Components.classes["@mozilla.org/file/local;1"].
	                     createInstance(Components.interfaces.nsILocalFile);
	file.initWithPath("C:\\SteviljkeOznacenihTorrentov.txt");

var line = {}, lines = [], hasmore;
do {
  hasmore = istream.readLine(line);
  lines.push(line.value);
} while(hasmore);

istream.close();
alert(lines);




ok... zdaj pa naprej... kaj zares hocem...

hocem imeti online content povezan z offlien bazo podatkov(simple txt fajl) ... tako nekako

recimo simple primer....
hocem na torrent tracker siteu oznaciti, da sem nek torrent ze dljal ali si ga oznaciti, da ga se hocem dljat itd....
torrent site ima recimo take urlje
http://mojblink.com/imeInNaslovTorrenta...

ali pa partis

http://www.partis.si/torrent/podrobno/1...

skratka notri je simple unikatna steviljka... (t12345 ... oziroma 12345)... in zdaj bi rad z grasemonkeyom naredil da prepozna da sem na torrent siteu in, da mi displaya kaksen gumb ki pozene funkcijo od mojega ekstensiona -
-gresemonkey sicer sam ne more pisati na disk... ampak lahko pa pozene katerokoli funkcijo od extensiona ketergakoli ....
torej v svojem extensionu naredim funkcije AddToDatabase(stevilka) in checkIfIsAlreadiInDatabase(stevilka) ...
in potem ko kliknem na greasemonkey gumb doda torrent identifikacijsko stevilko v txt file ...
.... in kadar greasemonkey zazna, da sem na torrent siteu se pozene checkIfIsAlreadyInDatabase(stevilka), da preveri ce je torrent steviljka ze v txt fajlu - in ce je, doda na site nekaj, s cimer je ocitno, da, in kako, sem oznacil ta site (neko sliko zelene kljukice recimo)

in tako si lahko naredim kategorije in oznacim torrente kot "ze downloadane".. kot "ze pregledane da me ne zanimajo"... kot da "jih moram se dljat".. itd....


potem pa moram se narediti da ko recimo searcham torrente na temu siteu greasemonkey pogleda vse linke in zazna kateri linki se ze v txt fajlu in zraven linkov ze doda oznako....

recimo en greasemonkey extension prepozan rapidshare linke in preveri ce fajli so available na rapidshare sajtu in ce so zraven doda kljukico zeleno ce pa niso pa rdeci x,,,,
tule:
http://userscripts.org/scripts/show/9467


potem je tudi super greasemonkey scrip ki ti sam dlja rapidshare fajle .. imenuje se Rapidshare AutoWait ..zelo priporocam


uglavnem ce mi rata takole povezati lokalni txt z urlji v firefoxu si lahko oznacujem marsikaj ... torrente... topice na forumih recimo ... karkoli po katerihkoli svojih paramtetih ... kjerkoli kjer je veliko podatkov in kjer user interface od sitea ne omogoca tega kar bi hotel
  • spremenilo: Vapo1 ()

Vapo1 ::

evo prvi problem.. nikakor ne morem appendat txt fajlu - v mojem firefox extensionu





function AppendToFIle(){

var aFile = Components.classes["@mozilla.org/file/local;1"]
                      .createInstance(Components.interfaces.nsILocalFile);

aFile.initWithPath( "c:\\MojOutFirefox.txt" );
//aFile.createUnique( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 600);

var stream = Components.classes["@mozilla.org/network/safe-file-output-stream;1"].
                       createInstance(Components.interfaces.nsIFileOutputStream);

//stream.init(aFile, 0x04 | 0x08 | 0x20, 0600, 0); // write, create, truncate

stream.init(aFile, 0x02 | 0x10, 0600, 0); //0x10 naj bi bil ukaz za Append... ampka ne dela¨!!!1

//var seekstream = stream.QueryInterface(Components.interfaces.nsISeekableStream);
//seekstream.seek(0x02, 0); // move to end of file


mojText = "aaa";
stream.write(mojText , mojText.length);
mojText = "BBB";
stream.write(mojText , mojText.length);


if (stream instanceof Components.interfaces.nsISafeOutputStream) {
    stream.finish();
} else {
    stream.close();
}

}




nevem zakaj append ne dela.... kao pri stream.init das flag 0x10 in naj bi bilo append.... ampak vedno overwrita!! ni mi jasno zakaj...
tudi poizkusi z "seekstream" mi niso uspeli

ce komu uspe append... ce mogoce pozna kaksen drugi nacin za appendat text... hvala

Zgodovina sprememb…

  • spremenilo: Vapo1 ()

Vapo1 ::

ok.. ratalo appendat...

kodo sem nekje skopiral iz neta
vse je isto samo da se nekako file objekt deklarira drugace (nic jasno meni)



function AppendToFile(){
	var file = Components.classes
	["@mozilla.org/file/directory_service;1"]
	.getService(Components.interfaces.nsIProperties)
	.get("Home", Components.interfaces.nsIFile);
	alert(file.path);

	file.append("phishlog.txt");
	var foStream = Components.classes
	["@mozilla.org/network/file-output-stream;1"]
	.createInstance(Components.interfaces.nsIFileOutputStream);

	foStream.init(file, 0x02 | 0x08 | 0x10, 0666, 0);

	var converter = Components.classes
	["@mozilla.org/intl/converter-output-stream;1"]
	.createInstance(Components.interfaces.nsIConverterOutputStream);

	converter.init(foStream, "UTF-8", 0, 0);
	
	var data="blabla\n";

	converter.writeString(data);
	converter.close();

}



aja pa se to... tale new line character "\n" ... ce odprem fajl potem v textpadu lepo zazana linije... v notepadu pa ne ... kaksen escape character uporabim da bo tudi v notepadu delalo?

Vapo1 ::

ok.. naslednja stvar je addat button z greasemonkey...

nekaj sem probaval.. in mi je uspelo addat button...
ampak zdajnisem vec suguren ce ej zares mozno v greasemonkey skripti pognati funkcijo od nekega extensiona...

ce kdo ve ali se da ali ne... in kako... bi bilo super



drugace pa mije uspesno ratalo z "CustomButtons2" extensionom pognati funkcijo AppendToDB v mojemu extensionu....

torej lahko magari naredim "custom button" ki zapise url v txt


ampak se vedno bo problem ker mora greasemonkey ko se stran nalozi pognati funkcijo v mojem extensionu ki searcha txt fajl in preveri ce je zabelezen trenutni url notri

razen ce naredim tako da zaobidem greasemonkey v celoti ... in da moj extension vsakic ko se nalozi page preverice je pravi domain (od torrent sitea recimo) in potem searcha txt fajl ce je trenutni url (torej trenutni torrent) zabelezen notri...

hmmmm... kako pa naredim to da moj extension vsakic ko se naloada katerikoi page preveri karkoli ze ima za preveriti ??... morda moram kaksen hook narediti ... "hook.onDocumentLoad... run moja funkcija"



hvala za kakersen koli insight


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

firefox extension: kako prebrati datoteko iz diska

Oddelek: Programiranje
5405 (287) Vapo1
»

LG GSA-4120B dela probleme pri pečenju DL DVD+Rjev

Oddelek: Strojna oprema
44865 (674) mtosev
»

tezave z virusom

Oddelek: Pomoč in nasveti
8779 (628) royal
»

Težave s pekačem

Oddelek: Pomoč in nasveti
12674 (614) boštjan
»

Sprememba spremenljivke v flashu iz txt fajla

Oddelek: Izdelava spletišč
12544 (418) Freak

Več podobnih tem