#!/usr/bin/perl -w
# very quick hack to convert an opera bookmark file into an xbel
# bookmark file (as the one used by konqueror, I don't know what
# xbel is about, I used my konqueror file as an example)
use strict;
sub write_xbel_hdr {
print "\n";
print "\n";
}
sub write_xbel_tail {
print "\n";
}
# parser as a simple state machine: if 0 it tries to read an URL,
# a FOLDER or a FOLDER end (a dash).
# state 1: reading an URL
# state 2: reading a folder
#
# it ignores the order of the bookmarks -- hopefully I can
# convince konqueror to sort them (it's only interested in the
# name and href of the bookmark)
sub parse_input {
my($state);
my($title, $url);
my($indent);
$state = 0;
$indent = "";
while() {
s/^\s+//;
s/\s+$//;
if ($state == 0) {
if ($_ eq "#URL") { $state = 1; next; }
if ($_ eq "#FOLDER") { $state = 2; next; }
if ($_ eq "-") {
$indent = substr($indent, 0, -2);
print "$indent\n";
next;
} # finish writing the folder
} elsif ($state == 1) {
if (/NAME=(.*)$/) {
$title = $1;
} elsif (/URL=(.*)$/) {
$url = $1;
}
if ($_ eq "") {
print "$indent\n";
print "$indent$title\n";
$state = 0;
}
} elsif ($state == 2) {
if (/NAME=(.*)$/) {
$title = $1;
}
if ($_ eq "") {
print "$indent\n";
$indent .= " ";
print "$indent$title\n";
$state = 0;
}
}
}
}
write_xbel_hdr;
parse_input;
write_xbel_tail;