Czyszczenie historii Firefox 3

0

Firefox od wersji 3.x w inny sposób przechowuje historię.
Przechowuje ją w pliku "places.sqlite", ale i ikony z zakładek. Więc trzeba jakoś dobrać się do samego pliku i na nim operować.

Jak to zrobić ?
...Może jakaś komenda do Firefox jako ostatnia deska ratunku ?

0

a rozszerzenie nic nie mowi ?
SQLite np. przegladarka (a samemu przez SQLite i biblioteki)

http://sourceforge.net/projects/sqlitebrowser

0

Mam instalować SQL tylko po to, aby zmodyfikować jeden plik ? TO by było bezsensu...
Poza tym, program byłby o wiele za duży.
Nie mówiąc już, że dalej nie wiadomo by było co robić na tej bazie.

Proszę o sposób z modyfikacją na pliku bez zabawy z SQL.

0

Instalowac SQLite ? Jedna biblioteka dll tobie zawadza ?!
Dodatkowo jest zawsze z ta wersja FF, wiec mozna by zniej korzystac.

BTW. co znaczy instalowac SQL ? MySQL, MSSQL, PostgreSQL ....... to jak instalowac C++
FireFox tak postepuje i dla nich nie jest to bez sensu (instaluja co prawda SQLite).

//-------------
A bez zabawy w SQL, masz kod biblioteki SQLite i mozesz z niego wyciagnac konstrukcje pliku

0

Ok, w Firefoxie jest plik 'sqlite3.dll'.

W DLLce są takie funkcje:

Memo1
sqlite3_aggregate_context
sqlite3_aggregate_count
sqlite3_auto_extension
sqlite3_bind_blob
sqlite3_bind_double
sqlite3_bind_int
sqlite3_bind_int64
sqlite3_bind_null
sqlite3_bind_parameter_count
sqlite3_bind_parameter_index
sqlite3_bind_parameter_name
sqlite3_bind_text
sqlite3_bind_text16
sqlite3_bind_value
sqlite3_busy_handler
sqlite3_busy_timeout
sqlite3_changes
sqlite3_clear_bindings
sqlite3_close
sqlite3_collation_needed
sqlite3_collation_needed16
sqlite3_column_blob
sqlite3_column_bytes
sqlite3_column_bytes16
sqlite3_column_count
sqlite3_column_decltype
sqlite3_column_decltype16
sqlite3_column_double
sqlite3_column_int
sqlite3_column_int64
sqlite3_column_name
sqlite3_column_name16
sqlite3_column_text
sqlite3_column_text16
sqlite3_column_type
sqlite3_column_value
sqlite3_commit_hook
sqlite3_complete
sqlite3_complete16
sqlite3_create_collation
sqlite3_create_collation16
sqlite3_create_function
sqlite3_create_function16
sqlite3_create_module
sqlite3_data_count
sqlite3_db_handle
sqlite3_declare_vtab
sqlite3_enable_load_extension
sqlite3_enable_shared_cache
sqlite3_errcode
sqlite3_errmsg
sqlite3_errmsg16
sqlite3_exec
sqlite3_expired
sqlite3_extended_result_codes
sqlite3_file_control
sqlite3_finalize
sqlite3_free
sqlite3_free_table
sqlite3_get_autocommit
sqlite3_get_auxdata
sqlite3_get_table
sqlite3_global_recover
sqlite3_interrupt
sqlite3_last_insert_rowid
sqlite3_libversion
sqlite3_libversion_number
sqlite3_load_extension
sqlite3_malloc
sqlite3_memory_alarm
sqlite3_memory_highwater
sqlite3_memory_used
sqlite3_mprintf
sqlite3_mutex_alloc
sqlite3_mutex_enter
sqlite3_mutex_free
sqlite3_mutex_leave
sqlite3_mutex_try
sqlite3_open
sqlite3_open16
sqlite3_open_v2
sqlite3_overload_function
sqlite3_prepare
sqlite3_prepare16
sqlite3_prepare16_v2
sqlite3_prepare_v2
sqlite3_profile
sqlite3_progress_handler
sqlite3_realloc
sqlite3_release_memory
sqlite3_reset
sqlite3_reset_auto_extension
sqlite3_result_blob
sqlite3_result_double
sqlite3_result_error
sqlite3_result_error16
sqlite3_result_int
sqlite3_result_int64
sqlite3_result_null
sqlite3_result_text
sqlite3_result_text16
sqlite3_result_text16be
sqlite3_result_text16le
sqlite3_result_value
sqlite3_rollback_hook
sqlite3_set_authorizer
sqlite3_set_auxdata
sqlite3_sleep
sqlite3_snprintf
sqlite3_step
sqlite3_thread_cleanup
sqlite3_total_changes
sqlite3_trace
sqlite3_transfer_bindings
sqlite3_update_hook
sqlite3_user_data
sqlite3_value_blob
sqlite3_value_bytes
sqlite3_value_bytes16
sqlite3_value_double
sqlite3_value_int
sqlite3_value_int64
sqlite3_value_numeric_type
sqlite3_value_text
sqlite3_value_text16
sqlite3_value_text16be
sqlite3_value_text16le
sqlite3_value_type
sqlite3_version
sqlite3_vfs_find
sqlite3_vfs_register
sqlite3_vfs_unregister
sqlite3_vmprintf

Jak teraz wywołać czyszczenie historii ?

0

A byles na stronie tworcy sqlite ? A szukales sqlite for delphi ? A szukales portu do pliku pas ?

Sa to pierwsze linki (na pierwszej stronie) google.

Co do formatu (jaka tabela) to albo bedzie w dokumentacji FF albo za pomoca linku jaki podalem do przegladarki dojdziesz do tego jaka to tabela. Potrzebujesz elementow SQL (wlasciwie straczy DELETE).

//-----
Moze tak, bo chyba nie zrozumiales, FF korzysta z bazy danych SQLite do przechowywania swoich informacji wiec nie znajdziesz komendy WyczyscHistorieFF a musisz wywolac zapytanie w stylu DELETE FROM tuTabelaZHistoria

0

Nie wiem o co ci chodzi... najpierw piszesz, że poprzez bibliotekę Firefoxa trzeba się odwołać (ta biblioteka już jest na dysku, więc nie trzeba więcej nic instalować), a teraz mówisz o zupełnie innej rzeczy... o SQLite dla Delphi ?

To w końcu jak się do tego zabrać ? Przez tą DLL sqlite3.dll czy przez komponent.
Bardziej by pasowało przez DLL, bo jak już wspomniałem instalacja komponentu który ma 1000 funkcji a mi potrzeba tylko wydać jedną komendę mija się z celem.

To tak jak bym chciał kupić auto, ale mam tylko do wyboru Ferrari.

0

A co ja wrozka [glowa] ? Nie wiem jakie rozwiazanie Ciebie interesuje, podalem chyba wszystkie

  1. Instalacja SQLite i pakietu pomocniczego, wydanie polecenia - wrecz batch
  2. ------- ||---------- i pakietu komponentow dla delphi, zrobienie tego z delphi
  3. ------- ||---------- i jakiegos wrapera dla dll np. https://svn.openxp.de/openxp/trunk/sqlite.pas
  4. Nie instalowanie a wybranie biblioteki sqlite3.dll z instalacyjnego FF (ta biblioteka to caly SQLite!!) i reszta z 1)
  5.                 ----------||--------------------------                                                                          i reszta z 2)
    
  6.                 ----------||--------------------------                                                                          i reszta z 3)
    

Dla ciebie chyba wersja 6 bedzie najlepsza, ale nawet dolaczenie wszystkiego (wer 2) nie zajela by wiecej niz 300k.

//-----------
Nie napisalem ze biblioteka jest FF, to jest biblioteka SQLite, ktora sobie FF dolacza do instalacji !!!!!!!!!!!!!!!
Jest tez opcja wyciecia wszytskiego z biblioteki SQLite, bo jest kod i zostawienie tego co chcesz i skompilowanie tego z wlasnym programem. Nie wiem czy taka zabawa jest jednak warta tyle zachodu (oszczedzasz niewiele, no chyba ze to jakies urzadzenia z 1mb dysku)

0

Dzięki reichel, ale to nadal nie jest to czego szukam. Nie chce instalować żadnych dodatkowych komponentów ani tym bardziej SQLite dołączać do programu.

0

A mozesz mi Powiedziec czego szukasz bo sie zagubilem ?

Podany plik pas mozesz przerobic na kilka linijek kodu w delphi, wykorzystac biblioteke SQLite z FF (jak nie ma to znaczy ze brak FF i mozna pocisnac caly plik).

0

Co prawda w/w link do pliku nie istnieje, ale znalazłem na innym serwerze:
http://www.itwriting.com/repos/sqlitewrapper/trunk/SQLite3.pas

Rozumiem, że potrzebny jest 1 plik "sqlite3.dll"
Plik ten jest w FireFoxie 3.x. Jeśli go nie ma, a tym samym FireFoxa, to nie ma problemu (w końcu chce wyczyścić tylko historię Firefoxa).

Druga sprawa, jak operować na bazie "places.sqlite", aby wywołać usunięcie historii.
Pierwszy raz spotykam się z bazami SQL.

Na pewno trzeba będzie skorzystać z tych funkcji:

function SQLite3_Open(filename: PAnsiChar; var db: TSQLiteDB): integer; cdecl; external SQLiteDLL name 'sqlite3_open';
function SQLite3_Close(db: TSQLiteDB): integer; cdecl; external SQLiteDLL name 'sqlite3_close';

Jednak nie mogę się doszukać czegoś w stylu "function SQLITE3_DELETE();"

Wyczytałem, że należy wywołać komendę "VACUUM", ale jak.
Poza tym tutaj piszą, że plik places.sqlite jest jakoś zaszyfrowany dodatkowo... http://forum.ks-ekspert.pl/index.php?showtopic=119200

0

Przyda się DELETE i funkcja sqlite3_exec().

0

dokladnie te trzy elementy open > exec > delete > close (razem z szukaniem biblioteki bedzie z 10 linijek kodu). O czym staram sie chyba pisac w kazdym poscie. Skoro nie wiedziales czym jest SQL to trzeba bylo poczytac a nie pisac, ze nie bedzisz uzywal ....

Jak otworzysz plik (pierwszy link jaki podalem) places.sqlite zobaczysz tam tabele, nie wiem co chcesz skasowac ale pewnie wszytsko wiec np. DELETE FROM moz_places, nastepna i nastepna tabela.
Pamietaj, ze niektore sa ze soba powiazane np. moz_historyvisits wskazuje na moz_places.

Np. mozesz sie pobawic wchodzac do zakladki Execute SQL

i wpisujac np.

SELECT * FROM moz_historyvisits LEFT JOIN moz_places ON moz_historyvisits.place_id = moz_places.id

0

Korzystając z biblioteki SQLite wywołaj na pliku places.sqlite komendę DROP TABLE IF EXISTS "moz_places";

i ewentualnie DROP TABLE IF EXISTS "moz_historyvisits";

1 użytkowników online, w tym zalogowanych: 0, gości: 1