Jump to content
Nokioteca Forum

Winfile 1.05.2 By Memory! Filemanager Con Tantissime Funzioni


memoryn70
 Share

Recommended Posts

Postata la patch 1 che aggiorna il programma alla 1.04.2

E' una patch e quindi non reinstalla tutto ma solo i file necessari.

Enjoy :D

Idee per il futuro :P

-Comparsa popup informazione / conferma con effetto dissolvenza: ho già fatto alcune prove e viene carino...

-Plugin anche per le informazioni dei file con la possibilità di 1)Aggiungere informazioni alla pagina di info di uno specifico file 2)Aggiungere nel menu Avanzate alcune operazioni specifiche per un file (es: Modifica tag e rimuovi tag per gli mp3)

-Modificare la tavolozza dei colori e renderla più potente, con slide per cambiare i colori (ho preso l'idea (e perché no forse anche il codice :D) da Image Designer, in python)

-Visualizzatore esadecimale (incorporato a quello testuale; magari con un tasto tipo Notepad++)

-Migliorare la gestione dei temi da un punto di vista del codice: soprattutto fare in modo che mentre carica il tema rimanga bloccata una schermata caricamento in corso (magari anche con una barra di avanzamento)

-Plugin gestione playlist con possibilità di modificarle

-Potenziare plugin vcf: import/export dalla rubrica, eliminazione, aggiunta, visualizzazione di più informazioni, estrazione immagine associata al contatto...

Se avete anche voi delle idee non esitate a postare...

Modificato da memoryn70
Link to comment
Condividi su altri siti

Ottima la nuova versione, oggi, ho avuto 2 minuti è ho controllato un po' il programma...

DA SISTEMARE

- Nella cartella del tema Cobalt è presente il file Test.zip (che contiene una copia del tema stesso) che quindi è possibile eliminare.

- Ho sistemato i plugin gif,aif,mbm

nei quali Estrai -> Tutto non funzionava per un richiamo a gira_schermo() che era commentata (ho eliminato la funzione gira_schermo() e corretto il richiamo a quella interna al programma winfile )

- Aggiungere nel changelog i plugin gif e aif

- Nel changelog è presente il plugin html ma nel sis no.

- Ho convertito le mask dei temi con l'aiuto di un piccolo script (in questo modo la visualizzazione su nokia 6600 risulta corretta) che in questo modo occupano meno, posto anche lo script.

Posto di seguito uno zip con all'interno i 5 temi modificati (che passano da un totale di 720 a 571 kB [vengono risparmiati anche i 154 kB del file test.zip]), lo script (Mask Converter.py) e i 3 plugin gif,aif,mbm (estrai -> tutto) corretti.

Modifiche_varie.zip

Modificato da Snake87
Link to comment
Condividi su altri siti

Ottima la nuova versione, oggi, ho avuto 2 minuti è ho controllato un po' il programma...

DA SISTEMARE

- Nella cartella del tema Cobalt è presente il file Test.zip (che contiene una copia del tema stesso) che quindi è possibile eliminare.

- Ho sistemato i plugin gif,aif,mbm

nei quali Estrai -> Tutto non funzionava per un richiamo a gira_schermo() che era commentata (ho eliminato la funzione gira_schermo() e corretto il richiamo a quella interna al programma winfile )

- Aggiungere nel changelog i plugin gif e aif

- Nel changelog è presente il plugin html ma nel sis no.

- Ho convertito le mask dei temi con l'aiuto di un piccolo script (in questo modo la visualizzazione su nokia 6600 risulta corretta) che in questo modo occupano meno, posto anche lo script.

Posto di seguito uno zip con all'interno i 5 temi modificati (che passano da un totale di 720 a 571 kB [vengono risparmiati anche i 154 kB del file test.zip]), lo script (Mask Converter.py) e i 3 plugin gif,aif,mbm (estrai -> tutto) corretti.

Molto bene! Grazie ora che ho un po di tempo do un occhiata a tutto...

EDIT: il plugin html non l'ho inserito perché è ancora una beta ma molto beta ;)

Modificato da memoryn70
Link to comment
Condividi su altri siti

Ciao è la prima volta che scrivo ma seguo da sempre questo forum.

mi piacerebbe usare winfile come lettore e quindi che leggesse internamente, cioè senza aprire il lettore predefinito, i file .m4a come accade per gli mp3.

grazie. winfile è un programma eccellente.!!!complimenti

Grazie della segnalazione! Infatti ho notato un errore nel programma: c'era scritto ma4 e non m4a...:mumble:

Link to comment
Condividi su altri siti

OTA Plugin by Snake87 v1.0

Visualizza le immagini ota

Per chi non lo sa i file ota sono le immagini (picture message) che si potevano scambiare con il cellulare tramite sms sui vecchi terminali nokia come il 3210-3310-3330

-----------------------------------------

Queste sono le info riguardo questo tipo di file:

Dimensione immagine 72*28

Colori: B/N

Dimensione del file 256 byte:

Primi 4 byte header del file, altri 252 byte informazioni pixel

9 byte compongono una riga

1 bit corrisponde ad un pixel

0 -> Bianco

1 -> Nero

-----------------------------------------

I file ota (nel nokia 6600) sono posizionati in:

C:\\Nokia\\Images\\Pictures\\

INSTALLAZIONE

Copiare il file ota.py in

C:\\System\\Apps\\Winfile\\Plugins\\FileOpen\\

o

E:\\System\\Apps\\Winfile\\Plugins\\FileOpen\\

Versione 1.0

- Prima versione del plugin

PS: Sono ancora impegnato, ma un briciolo di tempo in questi 2 mesi di + o - di assenza sono riuscito a fare questo plugin....

In teoria tra 1 mesetto ritornerò pienamente attivo nel forum.

Che ne pensate di questo plugin????

OTA_Plugin.zip

Modificato da Snake87
Link to comment
Condividi su altri siti

OTA Plugin by Snake87 v1.0

Visualizza le immagini ota

Per chi non lo sa i file ota sono le immagini (picture message) che si potevano scambiare con il cellulare tramite sms sui vecchi terminali nokia come il 3210-3310-3330

-----------------------------------------

Queste sono le info riguardo questo tipo di file:

Dimensione immagine 72*28

Colori: B/N

Dimensione del file 256 byte:

Primi 4 byte header del file, altri 252 byte informazioni pixel

9 byte compongono una riga

1 bit corrisponde ad un pixel

0 -> Bianco

1 -> Nero

-----------------------------------------

I file ota (nel nokia 6600) sono posizionati in:

C:\\Nokia\\Images\\Pictures\\

INSTALLAZIONE

Copiare il file ota.py in

C:\\System\\Apps\\Winfile\\Plugins\\FileOpen\\

o

E:\\System\\Apps\\Winfile\\Plugins\\FileOpen\\

Versione 1.0

- Prima versione del plugin

PS: Sono ancora impegnato, ma un briciolo di tempo in questi 2 mesi di + o - di assenza sono riuscito a fare questo plugin....

In teoria tra 1 mesetto ritornerò pienamente attivo nel forum.

Che ne pensate di questo plugin????

@pandipo: uhm mi sa che hai problemi con la libreria msys. Vedrò di rimettere applist ma quella su certi terminali da problemi...boh

@snake: bello come plugiin! Poi lo provo...

Link to comment
Condividi su altri siti

Ho provato il plugin! Davvero ottimo e leggero.

Solo una cosa:

togli questo:

plugins.plugin,plugins.active_plugin_name=None,None

return

e metti questo (nuovo da wf 1.04)

plugins.clean_module()

ah anche qui in def isota(s,fn):

#f.read completo lo sostituirei con f.seek(0,2) e poi f.tell cosi non serve caricare il file in memoria

tipo

f.seek(0,2)

c=(f.tell()==252) #anzi mi pare 256 dato che prima leggi 4 byte

Si è vero è una minchiata per la ram però se il file fosse danneggiato e magari grande mebabytes allora la cosa serve eccome :lmaosmiley:

edit: toglimI una curiosità: ma perchè sono impostati byte anche maggiori di solo \x01? Si possono leggere come scala di grigio? Magari funzionerebbe :lmaosmiley:

Anzi posto la classe che gestisce i plugins cosi vedi come funziona...

class explorer_plugins:
#'''Gestione dei plugin per l'apertura di un tipo di file (basato su estensione)'''
def __init__(s):
	if directory.file_plugins not in sys.path:
		#sys.path.append(directory.file_plugins+"\\")
		#sys.path=[directory.file_plugins+"\\"]+sys.path
		#Massima priorità alla directory dei plugins
		sys.path.insert(0,directory.file_plugins+"\\")
		#print sys.path
	s.plugin,s.active_plugin_name,s.plugin_end_cb=None,None,None #Modulo, nome, funzione da chiamare al termine
	try:
		s.plugin_list=os.listdir(directory.file_plugins)
	except:
		s.plugin_list=[]
	s.global_filename=""
def init_module(s,ext):
	#print "Ricerca plugin..."
	#print ext,s.plugin_list
	if not ext:
		#s.plugin,s.active_plugin_name=None,None
		return 0
	# if s.plugin:
		# print "Requested clean by init_module"
		# s.clean_module()
	ext=ext.strip(".").lower()
	for plugin_name in s.plugin_list:
		#Supporta plugins con nome: ext1,ext2,exti.py
		supported_exts=plugin_name.lower().split(".")[0].split(",")
		if ext in supported_exts:
			#print "Plugin trovato"
			# if s.plugin:		# Pulizia vecchio plugin ancora caricato...
				# print "Requested clean by init_module"
				# s.clean_module()
			s.active_plugin_name=plugin_name
			s.plugin=__import__(os.path.splitext(plugin_name)[0])
			if s.plugin._winfile_version_>__version__:
				if user.query(u"Il plugin necessita di una versione di WinFile maggiore.\nAttuale: %s\nRichiesta: %s\nProvare a caricare comunque?"%(str(__version__),str(s.plugin._winfile_version_))):
					return 1
			#if s.plugin.
			#print "Plugin caricato"
			else:
				return 1
	#s.plugin,s.active_plugin_name,s.plugin_end_cb=None,None,None
	return 0
def start_module(s,filename):
	if s.plugin:
		s.global_filename=filename
		s.plugin.init_plugin(globals(),filename) #Funzione/classe obbligata dei plugin a cui viene passato il namespace del programma (per usare le sue risorse) e il nome del file
		# return 1
	# return 0
def clean_module(s):
	if s.plugin_end_cb:
		s.plugin_end_cb()
		#print "Plugin Default Exit Callback Called"
	s.plugin,s.active_plugin_name,s.plugin_end_cb=None,None,None
	#print "Plugin succefully cleaned!"
def stop_module(s,reload_files=0,other_cb=None):#,old_listbox=None):
	# try: s.plugin.stop_callback()
	# except: pass
	#s.plugin

	#s.plugin,s.active_plugin_name=None,None #Puliamo i moduli caricati
	#if other_callback: other_callback()
	# if old_listbox:
		# ListBox.load(old_listbox)
	s.clean_module()
	if other_cb:
		other_cb()
		#print "Other_cb called"
	if reload_files:
		explorer.refresh(to_unicode(os.path.split(s.global_filename)[1]))
	else:
		explorer.set_list(to_unicode(os.path.split(s.global_filename)[1]))
		explorer.set_inputs_type()

Modificato da memoryn70
Link to comment
Condividi su altri siti

Ho provato il plugin! Davvero ottimo e leggero.

Solo una cosa:

togli questo:

plugins.plugin,plugins.active_plugin_name=None,None

return

e metti questo (nuovo da wf 1.04)

plugins.clean_module()

ah anche qui in def isota(s,fn):

#f.read completo lo sostituirei con f.seek(0,2) e poi f.tell cosi non serve caricare il file in memoria

tipo

f.seek(0,2)

c=(f.tell()==252) #anzi mi pare 256 dato che prima leggi 4 byte

Si è vero è una minchiata per la ram però se il file fosse danneggiato e magari grande mebabytes allora la cosa serve eccome :shifty:

Grazie....

Sistemate entrambe le cose..

edit: toglimI una curiosità: ma perchè sono impostati byte anche maggiori di solo \x01? Si possono leggere come scala di grigio? Magari funzionerebbe :rolleyes:

Anzi posto la classe che gestisce i plugins cosi vedi come funziona...

No, non si possono leggere come scala di grigi:

1 pixel è rappresentato da un bit, quindi un byte rappresenta 8 pixel

72 pixel di larghezza quindi 9 byte per riga

28 pixel altezza

4 byte (header) + 9*28 (informazioni pixel) = 256 byte

PS: Infatti se guardi nel codice ci sono le funzioni per conversioni da decimale a binario (dtb) e viceversa (btd)

OTA_Plugin.zip

Modificato da Snake87
Link to comment
Condividi su altri siti

Grazie....

Sistemate entrambe le cose..

No, non si possono leggere come scala di grigi:

1 pixel è rappresentato da un bit, quindi un byte rappresenta 8 pixel

72 pixel di larghezza quindi 9 byte per riga

28 pixel altezza

4 byte (header) + 9*28 (informazioni pixel) = 256 byte

PS: Infatti se guardi nel codice ci sono le funzioni per conversioni da decimale a binario (dtb) e viceversa (btd)

Ah ecco non avevo capito ... infatti mi sembrava ben strano!

Link to comment
Condividi su altri siti

Ciao Memory, stavo facendo una prova per provare a sistemare un bug introdotto nei miei plugin con la nuova versione, tuttavia è molto lungo il codice usato per la correzione, potresti modificare la classe mini_viewer in WinFile come ho scritto all'interno del plugin modificato??

Le modifiche richieste sono piccole, e si trovano subito sotto l'intestazione della classe mod_viewer all'interno del file py allegato.

Il bug è questo:

il numero (nimg/imgtot) in basso al centro non corrisponde, nel mio plugin, al numero reale (cambiando immagine non muta)

mbmtest.zip

Modificato da Snake87
Link to comment
Condividi su altri siti

Ciao Memory, stavo facendo una prova per provare a sistemare un bug introdotto nei miei plugin con la nuova versione, tuttavia è molto lungo il codice usato per la correzione, potresti modificare la classe mini_viewer in WinFile come ho scritto all'interno del plugin modificato??

Le modifiche richieste sono piccole, e si trovano subito sotto l'intestazione della classe mod_viewer all'interno del file py allegato.

Il bug è questo:

il numero (nimg/imgtot) in basso al centro non corrisponde, nel mio plugin, al numero reale (cambiando immagine non muta)

beh bastava penso che facessi

self.index=ListBox.current()

self.images_in_dir=range(mbmf.total())

Comunque vedo cosa posso fare...

Link to comment
Condividi su altri siti

beh bastava penso che facessi

self.index=ListBox.current()

self.images_in_dir=range(mbmf.total())

Comunque vedo cosa posso fare...

Ok...Comunque, all'inzio avevo modificato solo in previous e next queste 2 variabili

self.index, self.images_in_dir

ma nella prima immagine veniva tipo

1/3 (dipende da quante immagini sono presenti nella directory dove è il file mbm)

e solo quando premevo il tasto associato a next o a previous i numeri si sistemavano.

Modificato da Snake87
Link to comment
Condividi su altri siti

con il codice di winfile attuale non può girare sui 3rd edition come vorremmo. io ho fatto diversi tentativi e l'unico risultato positivo è stato questo

https://www.nokioteca.net/home/forum/index....howtopic=154070

come vedete dalle immagini hanno una risoluzione più piccola dei nostri 3rd, perchè ovviamente è scritto per 176x208.

proprio ieri un tizio ha lasciato nel topic dei link a delle versioni 3rd di winfile, ma vi consiglio di diffidare, in quanto memory stesso ha detto che non ha ancora rilasciato alcuna versione per i 3rd edition :P

Link to comment
Condividi su altri siti

  • 2 settimane dopo...
PROPOSTA:

che dici di implementare una funzione che indichi lo spazio occupato (reale) sul disco di un file?

Si mi piacerebbe farlo...devo solo capire come calcolarlo...mi sa che devo sapere la dimensione dei cluster o?

EDIT: ho trovato come trovare la dimensione su disco: sizeondisk = clustersize * ((filelength + clustersize - 1) / clustersize)

Il problema è trovare la dimensione dei cluster sul disco...

Modificato da memoryn70
Link to comment
Condividi su altri siti

quella è la cosa più semplice:

nokia ha implementato solo il filesystem fat32 indi il cluster è di 32kb.

Mi ero interessato di questa cosa...

def dimensionereale(n):
#n=os.path.getsize(file)
if n<=32768:
#dimesione di ogni cluster in byte
	return 32768

else:

	a=int(((n/32768)*32768))

	return a+32768

funge <_<

Link to comment
Condividi su altri siti

quella è la cosa più semplice:

nokia ha implementato solo il filesystem fat32 indi il cluster è di 32kb.

Mi ero interessato di questa cosa...

def dimensionereale(n):
#n=os.path.getsize(file)
if n<=32768:
#dimesione di ogni cluster in byte
	return 32768

else:

	a=int(((n/32768)*32768))

	return a+32768

funge :D

Eh ho penasato anche io che fosse standard ma non è detto...comunque il metodo l'ho trovato: vediamo se ora riesco a fare qualcosa.

Ah comunque è fat 16 e non 32...

Modificato da memoryn70
Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy