[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: json > mysql конвертер букмарков мозиллы



Спасибо, все получилось.
Перлокошмарик получился такой:

#!/bin/sh

sqlite3 places.sqlite .dump                                          |\
grep -v  "BEGIN TRANSACTION;"                                        |\
grep -v  "COMMIT;"                                                   |\
perl -pe 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO "\1" VALUES/'    |\
perl -pe 's/LONGVARCHAR/LONGTEXT/'                                   |\
perl -pe 's/LONGVARCHAR/LONGTEXT/'                                   |\
perl -pe 's/LONGVARCHAR/LONGTEXT/'                                   |\
perl -pe 's/AUTOINCREMENT/auto_increment/'                           |\
perl -pe 's/TEXT UNIQUE/text/'                                       |\
perl -pe 's/"//'                                                     |\
perl -pe 's/"//'                                                     |\
grep -v "INTO sqlite_sequence"                                       |\
grep -v "FROM sqlite_sequence"                                       |\
grep -v "moz_inputhistory"                                           |\
grep -v "CREATE UNIQUE"                                              |\
grep -v "CREATE INDEX"                                               |\
grep -v "CREATE TRIGGER"                                             |\
mysql -u root -p xbase

Далее полученную таблицу можно отобразить, собрав все папки для каждой закладки, с помощью php (пример ниже). Все это нужно было, что бы представить и папки и теги как равнозначные атрибуты, с возможностью их выбора через иконки, для поиска нужной букмарки. (интерфейса в примере нет).



<html><body>
<?php
$dbhost = localhost;
$dbuser = base;
$dbpass = base;
$dbname = base;
$dbtable="new_table";

$link=mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_errno($link).mysql_error($link)); $db=mysql_select_db($dbname,$link) or die(mysql_errno($link).mysql_error($link));


convert_one();

//--------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------
function convert_one() {
global $attr_parent;

$add_bookmarks = mysql_query("SELECT * FROM `moz_places` WHERE `hidden` = '0'");
while($bookmarks_data=mysql_fetch_row($add_bookmarks)) {
list($id,$url,$title,$rev_host,$visit_count,$hidden,$typed,$favicon_id,$frecency) = $bookmarks_data; echo "--------------------------------------------------------------------------------------------------", "<br>";
echo ' $url: ', $url, "<br>";
//$add=mysql_query("INSERT INTO `my_table` (экспортируйте данные, при желании, в ваш формат) ") or die(mysql_errno($link).mysql_error($link));

$snoop_attr = mysql_query("SELECT * FROM `moz_bookmarks` WHERE `fk` = '$id'");
while($attr_data=mysql_fetch_row($snoop_attr)) {
list($attr_id, $attr_type, $attr_fk, $attr_parent, $attr_position, $attr_title, $attr_keyword_id, $attr_folder_type, $attr_dateAdded, $attr_l
echo ' $attr_title: ', $attr_title, "<br>";
//$add=mysql_query("INSERT INTO `my_table` (экспортируйте данные, при желании в ваш формат) ") or die(mysql_errno($link).mysql_error($link));
cycle();
}
}
}
//--------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------
function cycle() {
global $attr_parent;
if ($attr_parent!=0){
snoop_parent();
}
}


//--------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------
function snoop_parent() {
global $attr_parent;
$snoop_attr_parent = mysql_query("SELECT * FROM `moz_bookmarks` WHERE `id` = '$attr_parent'");
while($snoop_attr_parent_data=mysql_fetch_row($snoop_attr_parent)) {

list($attr_id_parent, $attr_type_parent, $attr_fk_parent, $attr_parent, $attr_position_parent, $attr_title_parent, $attr_keyword_id_parent, $

if ($attr_title_parent!=""){
if ($attr_title_parent!="Bookmarks Menu"){
echo ' $attr_title_parent: ', $attr_title_parent, "<br>";
//$add=mysql_query("INSERT INTO `my_table` (экспортируйте данные, при желании, в ваш формат) ") or die(mysql_errno($link).mysql_error($link));
}
}


}
cycle();
}


?>
</body></html>

Удачи.

--
Sincerely,
	Nicholas


Reply to: