Official eMule-Board: Formato File Known.met - Official eMule-Board

Jump to content


Page 1 of 1

Formato File Known.met

#1 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 09 August 2015 - 08:53 PM

Ciao,

Anzitutto un saluto a tutti, è il mio primo post e non mi sembra di aver visto qualche sezione presentazioni. Del resto non c'è molto da dire, sono un normalissimo utente senza particolari conoscenze tecniche.

La mia domanda riguarda il formato del file known.met, perché vorrei essere in grado di modificarlo. Conosco metmedic (che non accetta il formato della versione corrente) e metviewer che invece lo legge ma può solo esportarlo in csv ma non può fare il contrario, che è quello che mi servirebbe. Non ho trovato assolutamente nient'altro in rete sicché mi sono messo a scrivere un programma che lo possa leggere. Ma mi sono arenato immediatamente perché non ho trovato da nessuna parte una chiara descrizione del formato binario. In rete ci sono tante richieste in merito ma si viene rimandati sempre ai due programmi di cui sopra. Allora ho scaricato i sorgenti di eMule ma ho gettato la spugna: andare a cercare campo per campo e come viene gestito è un lavoro improbo, son tanti mega di codice e mi sono perso dopo diversi tentativi. Ho anche tentato di compilare emule con l'idea di scrivere funzioni addizionali per quello che mi serve, ma accetta solo visual studio 2010 di cui pare la MS non distribuisca il service pack senza il quale non funziona. Tra parentesi ne seguirebbe che l'esistenza dei binari di eMule dipende da qualcuno che ha installato la specifica e ormai vecchia versione di visual studio... :(

Insomma non so come uscirne. Prima che mi rimandiate eventualmente alla sezione in inglese provo qui, dato che il mio inglese è terrificante e a malapena lo leggo, scriverlo è una tragedia. Dunque in sintesi: esistono i sorgenti di metviewer (e mi pare di no) oppure c'è una lista chiara con il formato di known.met coi relativi tipi di dato?

Grazie mille per ogni suggerimento

Apx.

This post has been edited by arkeo: 09 August 2015 - 08:55 PM

0

#2 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 09 August 2015 - 11:13 PM

Ciao, benvenuto.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

non mi sembra di aver visto qualche sezione presentazioni

Qualcuno si presenta nella sezione generale, comunque non e' importante.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

sono un normalissimo utente senza particolari conoscenze tecniche.

Da quel che scrivi sotto vorresti programmare, ma se non conosci il C++ e' quasi sicuramente inutile che vai avanti, perdona sia la franchezza sia la banalita' dell'affermazione.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

Conosco metmedic (che non accetta il formato della versione corrente)

Strano, il formato dovrebbe essere sempre lo stesso.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

Non ho trovato assolutamente nient'altro in rete

Per la riparazione dei file corrotti, i file .met corrotti quindi, si usano anche: DonkeyDoctor, MetFileRegenerator e Known Metinator.
Se ti fossero utili in qualunque modo puoi scaricarli da eMule facendo queste ricerca sui server per trovarli, in ordine:

ed2k::F2048461125E1CF310FCB035B3F61AFD
ed2k::A96D6E91856C8AF0B44B6A50B846F4AE
ed2k::F1AA483F9306D4A37020E663E2BE7922

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

Ho anche tentato di compilare emule con l'idea di scrivere funzioni addizionali per quello che mi serve, ma accetta solo visual studio 2010

Come puoi leggere qua eMule e' sviluppato con Visual Studio 2008.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

Tra parentesi ne seguirebbe che l'esistenza dei binari di eMule dipende da qualcuno che ha installato la specifica e ormai vecchia versione di visual studio... :(

Non vedo un gran problema in questo, comunque qualcuno e' riuscito a compilarlo anche con Visual Studio 2013, come puoi leggere qua.

View Postarkeo, on 09 August 2015 - 10:53 PM, said:

esistono i sorgenti di metviewer (e mi pare di no) oppure c'è una lista chiara con il formato di known.met coi relativi tipi di dato?

Per i file sorgenti di MetViewer puoi provare a contattare l'autore qua (in tedesco o inglese, possibilmente).
Per dettagli sui file .met puoi provare questo (file .html da scaricare), puoi provare anche a scaricare da eMule il file "Part Met info by Cybermutant":

ed2k://|file|PI.zip|14506|EFFE51095DF2EC155A801ECA3A575601|/

Forse ti puo' essere utile il file "eMule UML diagrams and source analisys in HTML" per eMule 0.48a a cura di CiccioBastardo:

ed2k://|file|eMule_0.48a_HTML.rar|70041845|80CC08D81A6C7D10304FD82628F230A9|/

Ma quale obiettivo vorresti raggiungere in particolare?
0

#3 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 10 August 2015 - 07:47 AM

Ti ringrazio davvero moltissimo per la quantità di info cui mi hai appena dato accesso.

Sulla programmazione così come per il resto, io tendo a ragionare in termini assoluti: ovvero, rispetto a un bravo programmatore non ho, come dicevo, particolari conoscenze. Ma conosco abbastanza il C++ sulle cose di base e la lettura dei sorgenti di eMule non mi mette in grossissime difficoltà. Da quello che ho visto non ci sono costrutti del linguaggio troppo sofisticati, la difficoltà è rintracciare a ritroso tutta la gerarchia delle classi e controllare ogni volta se sono stati usati overload o funzioni virtuali. Su un progetto così grande posso essere sicuro di perdermi qualche cosa come sa chiunque debba studiare un codice non scritto da sé stessi. Ieri avevo qualcosa come una ventina di files aperti in due editor ed ero un po' fuso, sicché ho cercato dove fosse il forum e ho trovato questo per chiedere una mano.

Quello che vorrei mettere in piedi è indotto dal fatto che sono la classica anima in pena con in più una logistica incasinata. Ho qualche TB di files in parecchi HD che a loro volta sono inseriti in box di diverso tipo. Accade che: 1) ogni tanto cambio schema di nome file quando mi accorgo di qualche nuovo dato che voglio contenuto nel nome o non ce lo voglio più 2) Quando un HD si riempie passo a un altro e si aggiungono o eliminano cartelle condivise 3) Ho accesso a tre ADSL, e le uso perché la banda che posso usare su ciascuna è poca. 4) Spesso devo spostare i box da una postazione all'altra per periodi di diverse settimane. Certo, coi links simbolici ho potuto fare qualcosa ma non tutto. Ovviamente con tre "known.met" più tutti i fattori di cui sopra, sarebbe utile ogni tanto fare un merge generale ed evitare di rifare ogni volta l'hash. Dato che ho un minimo di confidenza con sqlite, se riesco a leggere il known.met potrei inserire in ciascun nome file un indice univoco e creare un database degli hash per non doverli ogni volta far ricalcolare da eMule. Un database mi permetterebbe anche di fare il merge dei known.met e poi copiarli su ciasun PC per così dire "sincronizzando" la situazione. Ho visto che uno dei vari programmi (metmedic?) fa il merge ma per quanto precede mi sa che un database da me gestibile sarebbe la soluzione migliore.

E così questa è la situazione e quello che vorrei fare. Ti ringrazio veramente molto per le indicazioni utilissime, i downloads sono "in progress" e spero di trovarci info utili a raccapezzarmi :)

ciao!

Apx.

This post has been edited by arkeo: 10 August 2015 - 07:48 AM

0

#4 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 10 August 2015 - 11:44 AM

Grazie per la spiegazione.
Nonostante tu abbia gia' citato alcune funzionalita', faccio comunque presente alcuni fatti che forse potrebbero esserti utili:

  • in Trasferimenti esiste la funzione categorie, grazie alla quale si possono anche indicare unita' esterne;
  • in File Condivisi si puo' usare il menu ad albero a lato per selezionare e deselezionare l'unita', la cartella o il file che t'interessa condividere;
  • in Opzioni - Cartelle e' presente un'opzione che ti permette di raggiungere un risultato simile al punto precedente, anche usando i percorsi di rete;
  • in Opzioni - Opzioni Avanzate e' possibile selezionare un'opzione per istruire eMule affinche' segua i collegamenti presenti nelle cartelle condivise;
  • in Strumenti e' presente la funzione per importare i file;
  • esiste anche il file known2_64.met;
  • il nome del file non influisce sul suo codice hash;
  • eMule puo' essere chiuso e lanciato utilizzando la riga di comando;
  • NTFS supporta i collegamenti simbolici, che possono puntare a percorsi remoti, per XP occorre installare un driver di terze parti;

Magari puoi provare a far qualcosa di piu' semplice come creare dei programmi in Windows batch per raggiungere i tuoi scopi, anche se posso capire che creare un programma che consenta di far confluire i file known.met in un unico file puo' essere una soluzione piu' efficiente ed un problema piu' stimolante da risolvere.
Aggiungo che esistono le versioni modificate di eMule ed un fork, eMulePlus; indagando nel loro codice potresti trovare degli spunti interessanti.
Eventualmente tu riesca ad ottenere qualche risultato facci sapere magari.
0

#5 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 11 August 2015 - 12:08 PM

Grazie mille, in effetti in parte avevo tamponato il problema perché a suo tempo mi ero accorto (e meno male dato che eMule ha una quantità di opzioni sterminate) che posso usare i percorsi di rete. Mi resta il problema della sincronizzazione dei vari known.met ma proprio stamattina il programma, grazie anche al materiale che mi hai indicato, ha dato i primi vagiti. Riesco a leggere tutti i known.met che passo sulla linea di comando anche se devo capire parecchie altre cose. In particolare, a quanto vedo, nel known.met non ci sono i dati del path della cartella. Eppure eMule se ne accorge perché - ed è il mio problema principale - se ritrova lo stesso file in una cartella diversa lo considera come nuovo. Sto valutando anche l'idea di modificare direttamente eMule se solo trovo visual studio 2008... Insomma, una delle due spero che funzionerà. Intanto grazie mille e se dovessi tirare fuori qualcosa di funzionante lo farò sapere.

ciao!

Apx

This post has been edited by arkeo: 11 August 2015 - 12:09 PM

0

#6 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 11 August 2015 - 02:05 PM

View Postarkeo, on 11 August 2015 - 02:08 PM, said:

nel known.met non ci sono i dati del path della cartella

No, infatti.
Per sapere tutti i campi chiudi eMule, apri MetViewer, apri un file .met di eMule, esporta il file in formato di valori separati da virgola (csv), apri il file esportato con il blocco note.
I campi sono:

Filename;
File Size;
Temporary Filename;
Last Written (UTC);
Last Posted (UTC);
Last Shared (UTC);
Requests Total;
Requests Accepted;
Bytes Uploaded;
Upload Priority;
Artist;Album;
Title;
Length (sec);
Bitrate;
Codec;
File Type;
File Hash


View Postarkeo, on 11 August 2015 - 02:08 PM, said:

Eppure eMule se ne accorge perché - ed è il mio problema principale - se ritrova lo stesso file in una cartella diversa lo considera come nuovo


Non esattamente; faccio l'esempio con eMule 0.50b, dimmi se ti trovi:

  • crea un file, per esempio il file "primo.txt" con dei caratteri a caso dentro;
  • apri eMule;
  • in File condivisi nel menu ad albero scegli il file "primo.txt" mettendo un segno di spunta verde accanto al file stesso;
  • eMule calcola l'hash per il file;
  • chiudi eMule;
  • sposta il file in un'altra cartella;
  • apri eMule;
  • in File condivisi seleziona il file dalla seconda cartella;
  • in Server - Registro eventi eMule non calcola piu' l'hash per il file stesso.

Il risultato e' diverso se rinomini il file:

  • chiudi eMule;
  • rinomina il file lasciandolo nella stessa cartella, per esempio rinominalo in "secondo.txt";
  • apri eMule;
  • in File condivisi il file rinominato non e' presente.

eMule ricorda che il file non e' piu' condiviso:

  • chiudi eMule;
  • rinomina "secondo.txt" in "primo.txt";
  • apri eMule;
  • in File condivisi il file non e' presente;
  • nel menu ad albero il file "primo.txt" non ha il segno di spunta accanto.

Lascio a te continuare, se t'interessa il discorso.

This post has been edited by Zangune: 11 August 2015 - 02:50 PM

0

#7 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 13 August 2015 - 03:40 PM

Provato, sembra davvero così... comunque, compilarlo è una pena, ho preso vs2008 e dà qualcosa come 320 errori, con il file progetto che è incluso della snapshot. Le librerie non sono incluse e dopo averle cercate in giro, il numero di errori è sceso ma sempre qualche decina sono. Non ho simpatia per i complottismi e del resto non ci sarebbe alcun motivo per voler impedire la diffusione di un software open source, ma mi viene il sospetto di una specie di snobismo da parte di chi è in grado di compilare i sorgenti, affinché chiunque voglia se lo debba stra-sudare. Ancora grazie!!!
0

#8 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 13 August 2015 - 04:12 PM

View Postarkeo, on 13 August 2015 - 05:40 PM, said:

mi viene il sospetto di una specie di snobismo da parte di chi è in grado di compilare i sorgenti, affinché chiunque voglia se lo debba stra-sudare

Solo un po' di pigrizia nel non tenere aggiornata la discussione sull'argomento che puoi leggere qua.
Cercando nel forum usando come chiave di ricerca il nome degli errori che ottieni dovresti riuscire a ridurre ancora il numero degli errori.
In bocca al lupo!
0

#9 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 15 August 2015 - 06:58 PM

Rieccomi, grazie ancora per il supporto... almeno per le mie possibilità non c'è assolutamente verso. Dal tempo in cui i threads erano attivi sono cambiate versioni di librerie, patch di visual studio e un sacco di cose. Ho veramente provato tutto quello che è stato in mio potere, compreso fare un tentativo verso aMule. Non mi va di ricevere prevedibili rispostacce e quindi non solleverò il problema sulla sezione sviluppo, ma penso davvero che dovrebbero capire che è il momento di un aggiornamento di tutto il ciborio. Pensavo tra me e me che rendere facile la compilazione potrebbe anche essere una buona spinta a che il protocollo eDonkey non muoia sotto il peso di torrent, ma non so.

La mia sensazione è che gli sviluppatori, nel corso del tempo abbiano applicato aggiornamenti e installato librerie e funzionalità sui loro PC e forse non si accorgono più se e quando manca qualcosa. Penso sia per questo che su un sistema non proprio dedicato allo sviluppo, come è il mio PC, non si riesca mai ad avere la giusta combinazione di versione di compilatore, e di ciascuna libreria.

Riguardo al mio progettino, procede e sono in grado di fondere insieme vari known.met su linea di comando. Purtroppo ancora non sono addentro al codice di eMule da poter capire cosa accade se si escludono dei files ma piano piano forse lo capirò (in altri termini: se due o più files hanno lo stesso hash, che uso come chiave primaria nel database, nel known.met in uscita c'è solo il primo file letto, lasciando gli altri che "per definizione" sono lo stesso file).

Una cosa credo simpatica è che il programma è completamente autocontenuto e usa la libreria standard del C, sebbene sia scritto in C++ perché alcuni costrutti son troppo comodi per non usare il linguaggio. E' molto semplice e ha un altrettanto semplice Makefile. Per adesso compila sia con GCC che con visual studio (ho usato il 2015 ma è un programmino così banale che credo possa compilare su qualsiasi versione). Se dovessi portarlo a un grado decente di funzionalità, poi capirò come poterlo "proporre" alla comunità, magari chiedo lumi qui...

grazie ancora e a presto!

Apx.

This post has been edited by arkeo: 15 August 2015 - 07:31 PM

0

#10 User is offline   Zangune 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1941
  • Joined: 05-March 12

Posted 16 August 2015 - 12:04 AM

View Postarkeo, on 15 August 2015 - 08:58 PM, said:

Non mi va di ricevere prevedibili rispostacce e quindi non solleverò il problema sulla sezione sviluppo, ma penso davvero che dovrebbero capire che è il momento di un aggiornamento di tutto il ciborio.

Non avere paura, dipende da come ti poni. Volendo il lavoro da fare sarebbe infinito, il tempo speso per farlo e' davvero molto poco e questo problema e' noto.

View Postarkeo, on 15 August 2015 - 08:58 PM, said:

Riguardo al mio progettino, procede e sono in grado di fondere insieme vari known.met su linea di comando.

Io ti suggerisco di proporlo, di pubblicare il codice sorgente e creare un progetto su SourceForge o dove ti pare.
0

#11 User is offline   arkeo 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 11
  • Joined: 09-August 15

Posted 16 August 2015 - 06:40 AM

Grazie, ora mi metto al lavoro su entrambe le cose!
0

#12 User is offline   Eulero 

  • Golden eMule
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 2553
  • Joined: 09-August 07

Posted 16 August 2015 - 10:28 AM

eDonkey è morto da un pezzo sotto il peso di torrent, ormai lo usano piccole comunità di aficionados (per una serie di motivi) ma non attira più nuovi utenti da anni.

Se vuoi divertirti col codice nulla te lo impedisce, ma se pensi di intavolare una qualsiasi discussione nella sezione dev vai a sbattere contro un muro. Tra l'altro l'interesse verso i sorgenti di eMule o progetti paralleli è ormai inesistente, tutto il progetto è roba da museo (dall'ultima release di eMule son uscite 3 nuove versioni di Windows.... così, per dire Posted Image).

Se cerchi il "contributo" della comunità allora ti conviene usare GitHub e pubblicare tutto lì, magari aiutandoti con StackOverflow per chiarimenti sul codice. Ormai tutti i dev e i progetti che contano sono lì.

Buon lavoro Posted Image
0

  • Member Options

Page 1 of 1

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users