From 2329e4a4df59ba4c42210705693a06744b5e4181 Mon Sep 17 00:00:00 2001 From: josch Date: Sat, 21 Jun 2014 16:03:20 +0200 Subject: [PATCH] initial commit --- README | 44 +++++++++++++++++ create_linkindex.pl | 47 ++++++++++++++++++ mksquashfs | Bin 0 -> 185687 bytes mokopedia.py | 78 +++++++++++++++++++++++++++++ remove_catlinks.pl | 24 +++++++++ remove_everything.pl | 115 +++++++++++++++++++++++++++++++++++++++++++ remove_files.sh | 40 +++++++++++++++ rename.pl | 24 +++++++++ stats | 71 ++++++++++++++++++++++++++ test.pl | 7 +++ time | 9 ++++ 11 files changed, 459 insertions(+) create mode 100644 README create mode 100755 create_linkindex.pl create mode 100755 mksquashfs create mode 100644 mokopedia.py create mode 100755 remove_catlinks.pl create mode 100755 remove_everything.pl create mode 100755 remove_files.sh create mode 100755 rename.pl create mode 100644 stats create mode 100644 test.pl create mode 100644 time diff --git a/README b/README new file mode 100644 index 0000000..5608bd2 --- /dev/null +++ b/README @@ -0,0 +1,44 @@ +Be careful! What you do is only for testing and submitting bugs! +Some important features may be correctly implemented! + +mail me: j [dot] schauer [at] email [dot] de + +All code is released unter GPLv3 or later + + +1. install mksquashfs-tools +on ubuntu you do this via +sudo apt-get install squashfs-tools + +2. Obtain an wikipedia html dump from static.wikipedia.org +be careful! the august 2007 version of the english wikipdia is 120GB extracted!! + +3. extract it to the folder where your scripts are located +7zr x wikipedia-de-html.7z + +your directory structure for eg. german wikipedia dump (26GB extracted) should look like this: + +de/ <= all your extracted files +README <= this file +remove_files.sh <= bash script for removing unnecesarry files like talk pages +create_linkindex.pl <= perl script for creating a links.list in eayh directory +remove_everything.pl <= clean up all remainig junk in the dump files +rename.pl <= rename everything + +4. edit all scripts for your language! + +heavy editing is to be done on remove_files.sh +in the perl scripts you have to change this line according to your language folder: +find(\&filehandler, "de"); + +5. delete unnecessary files and dirs in your dump + rm -r de/COPYING.html de/index.html de/skins/ de/raw/ de/images/ de/upload/ +6. run remove_files.sh +7. run create_linkindex.pl +8. now delete all links with + find de/ -size -2k -type f -name '*.html' -delete +9. run remove_everything.pl +10. run rename.pl +11. create the image file with + mksquashfs /de your_image_name +12. test it and drop me a line if sth. went wrong! diff --git a/create_linkindex.pl b/create_linkindex.pl new file mode 100755 index 0000000..e7a9044 --- /dev/null +++ b/create_linkindex.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl -w + +use File::Find; +use Encode; + +find(\&filehandler, "de"); + +sub filehandler { + if(-s $_ < 2048 and /\.html$/) { + open(BLUB, $_); + @lines = ; + close(BLUB); + if($#lines < 4) { + print "file too small: $File::Find::name\n"; + } else { + if(($href) = $lines[4] =~ //) { + + $href =~ s/%([0-9A-F]{2})/chr(hex($1))/eg; #clean uri + + $href = decode_utf8($href); + #if a link has an uppercase letter beyond the first letter it has 4 hex digits on the end wich have to be removed + unless($href =~ s/^(.+?\p{Lu}+.*?)_[a-f0-9]{4}\.html$/$1/) { + #if this did not match it's all lowercase and has no hex to be removed + $href =~ s/^(.+?)\.html/$1/; + } + $href = encode_utf8($href); + + $_ = decode_utf8($_); + #if a filename has an uppercase letter beyond the first letter it has 4 hex digits on the end wich have to be removed + unless($_ =~ s/^(.+?\p{Lu}+.*?)_[a-f0-9]{4}\.html$/$1/) { + #if this did not match it's all lowercase and has no hex to be removed + $_ =~ s/^(.+?)\.html$/$1/; + } + $_ = encode_utf8($_); + + $links = $ENV{PWD} . "/" . $File::Find::dir . "/links.list"; + open(LIST, ">>$links"); + print LIST "$_ $href\n"; + close(LIST); + } else { + print "no match in $File::Find::name\n\$lines[4]: $lines[4]\n\n"; + } + } + } +} + +#DONE: richtiges umbenennen der files - siehe mediawiki/trunk/phase3/maintenance/dumpHTML.inc -> function getFriendlyName diff --git a/mksquashfs b/mksquashfs new file mode 100755 index 0000000000000000000000000000000000000000..0a8f2e4d4777f2b8050d3fe9a7c38ca1bf2caa04 GIT binary patch literal 185687 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

N8a|zF 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 G_x}Le%37=d literal 0 HcmV?d00001 diff --git a/mokopedia.py b/mokopedia.py new file mode 100644 index 0000000..426c637 --- /dev/null +++ b/mokopedia.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + +import gtk +import bz2 +import gtkhtml2 +import time + +class Mokopedia: + document = gtkhtml2.Document() + + def delete_event(self, widget, event, data=None): + gtk.main_quit() + return False + + def __init__(self): + self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window.set_title("Mokopedia") + self.window.connect("delete_event", self.delete_event) + self.window.set_border_width(0) + self.window.set_default_size(480,640) + + main_box = gtk.VBox() + + search_box = gtk.HBox() + + search_entry = gtk.Entry() + search_box.add(search_entry) + + search_btn = gtk.Button("Search") + search_btn.connect("clicked", self.search) + search_box.pack_start(search_btn, False, False, 0) + + #document.connect('request_url', request_url) + #document.connect('link_clicked', link_clicked) + + self.displayarticle("Alexander_the_Great") + + view = gtkhtml2.View() + view.set_document(self.document) + + sw = gtk.ScrolledWindow() + sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) + sw.add(view) + + main_box.pack_start(search_box, False, False, 0) + + main_box.add(sw) + + self.window.add(main_box) + self.window.show_all() + + def search(self, widget): + print "blubber" + + def displayarticle(self, title): + self.document.clear() + self.document.open_stream('text/html') + + before = time.time() + #f = open(title + ".html.bz2") + f = open("Alexander_the_Great (another copy).html") + #self.document.write_stream(bz2.decompress(f.read())) + self.document.write_stream(f.read()) + f.close() + print time.time() - before + self.document.close_stream() + + +def main(): + gtk.gdk.threads_init() + gtk.gdk.threads_enter() + gtk.main() + gtk.gdk.threads_leave() + + +if (__name__ == '__main__'): + Mokopedia = Mokopedia() + main() diff --git a/remove_catlinks.pl b/remove_catlinks.pl new file mode 100755 index 0000000..a2796ba --- /dev/null +++ b/remove_catlinks.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +use File::Find; +use Encode; + +find(\&filehandler, "de"); + +sub filehandler { + if(-f $_ and $_ !~ /links\.list/) { #damit keine link.list dateien zerstört werden + open(BLUB, "$_"); + @lines = ; + close(BLUB); + + #Lazy... + $lines[$#lines] =~ s/

.*//; + + #änderungen speichern + open(FILE, ">$_") or print "can't write to $File::Find::name\n"; + print FILE @lines; + close(FILE); + } +} + +#DONE: richtiges umbenennen der files - siehe mediawiki/trunk/phase3/maintenance/dumpHTML.inc -> function getFriendlyName diff --git a/remove_everything.pl b/remove_everything.pl new file mode 100755 index 0000000..d09bf5c --- /dev/null +++ b/remove_everything.pl @@ -0,0 +1,115 @@ +#!/usr/bin/perl -w + +use File::Find; +use Encode; + +find(\&filehandler, "de"); + +sub filehandler { + if(/\.html$/) { #damit keine link.list dateien zerstört werden + open(BLUB, "$_"); + @lines = ; + close(BLUB); + $i=0; + $title=""; + $beginning=0; + $ending=0; + while(!$title && $i<=$#lines) { + ($title) = $lines[$i] =~ /(.+)<\/h1>$/; + $i++ + } + + if(!$title) { #TODO detect if $title == "0" + print "title not found in $File::Find::name\n"; + } + + #Beginn suchen + while(!$beginning && $i<=$#lines) { + if($lines[$i] =~ //) { + $beginning = $i; + } + $i++ + } + #Ende suchen + while(!$ending && $i<=$#lines) { + if($lines[$i] =~ s///) { + $ending = $i; + } + $i++ + } + #ersetzten + splice(@lines,$ending+1, $#lines-$ending, ""); + splice(@lines,0,$beginning+1, "$title\n"); + #vorletzte zeile löschen da diese seperat angefügt werden wird + splice(@lines,$#lines-2, 1, ""); + + $i=0; + while($i<=$#lines) { + #a *very* dirty way to get rid of unicode chars in URLs + $lines[$i] =~ s/%([0-9A-F]{2})/chr(hex($1))/eg; + + #needed for proper uppercase detection + $lines[$i] = decode_utf8($lines[$i]); + + #removing double spaces + $lines[$i] =~ s/[ ]{2,}//g; + + #removing tabs + $lines[$i] =~ s/\t//g; + + #removing empty lines + $lines[$i] =~ s/^\n$//g; + + #removing the comment block on the end of some aricles + if($lines[$i] =~ /^$/) { + splice(@lines, $i, 6, ""); + } + } + + #removing editsection links + $lines[$i] =~ s/.+?<\/span> //g; + + #converting tex images to tex inside of code tags + $lines[$i] =~ s/\"(.*?)\".*?\//$1<\/code>/g; + + #delete all title attributes + $lines[$i] =~ s/ title=\".*?\"//g; + + #remove rel attributes + $lines[$i] =~ s/ rel=\"nofollow\"//g; + + #if a link has an uppercase letter beyond the first letter it has 4 hex digits on the end wich have to be removed + $lines[$i] =~ s///g; + + #all remaining links only need to be cleaned up + $lines[$i] =~ s///g; + + #delete all thumbnail boxes + if($lines[$i] =~ /
/) { + splice(@lines,$i,7, ""); + } + + #delete all spans + $lines[$i] =~ s/(.*?)<\/span>/$1/g; + + #delete all class and style attr. + $lines[$i] =~ s/ class=\".*?\"//g; + $lines[$i] =~ s/ style=\".*?\"//g; + + #delete alle remaining images + $lines[$i] =~ s/<\/a>//g; + $lines[$i] =~ s///g; + + $lines[$i] = encode_utf8($lines[$i]); + $i++; + } + + #änderungen speichern + open(FILE, ">$_") or print "can't write to $File::Find::name\n"; + print FILE @lines; + close(FILE); + } +} + +#DONE: richtiges umbenennen der files - siehe mediawiki/trunk/phase3/maintenance/dumpHTML.inc -> function getFriendlyName diff --git a/remove_files.sh b/remove_files.sh new file mode 100755 index 0000000..db50988 --- /dev/null +++ b/remove_files.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +#echo lösche \"Kategorie~*\" +#find de/ -type f -name "Kategorie~*" -delete +echo lösche \"Kategorie_Diskussion~*\" +find de/ -type f -name "Kategorie_Diskussion~*" -delete +echo lösche \"Bild~*\" +find de/ -type f -name "Bild~*" -delete +echo lösche \"Bild_Diskussion~*\" +find de/ -type f -name "Bild_Diskussion~*" -delete +echo lösche \"Portal~*\" +find de/ -type f -name "Portal~*" -delete +echo lösche \"Portal_Diskussion~*\" +find de/ -type f -name "Portal_Diskussion~*" -delete +echo lösche \"Diskussion~*\" +find de/ -type f -name "Diskussion~*" -delete +echo lösche \"Vorlage~*\" +find de/ -type f -name "Vorlage~*" -delete +echo lösche \"Vorlage_Diskussion~*\" +find de/ -type f -name "Vorlage_Diskussion~*" -delete +echo lösche \"Benutzer~*\" +find de/ -type f -name "Benutzer~*" -delete +echo lösche \"Benutzer_Diskussion~*\" +find de/ -type f -name "Benutzer_Diskussion~*" -delete +#echo lösche \"Spezial~*\" +#find de/ -type f -name "Spezial~*" -delete +#echo lösche \"Wikipedia~*\" +#find de/ -type f -name "Wikipedia~*" -delete +echo lösche \"Wikipedia_Diskussion~*\" +find de/ -type f -name "Wikipedia_Diskussion~*" -delete +echo lösche \"MediaWiki~*\" +find de/ -type f -name "MediaWiki~*" -delete +echo lösche \"MediaWiki_Diskussion~*\" +find de/ -type f -name "MediaWiki_Diskussion~*" -delete +echo lösche \"Hilfe~*\" +find de/ -type f -name "Hilfe~*" -delete +echo lösche \"Hilfe_Diskussion~*\" +find de/ -type f -name "Hilfe_Diskussion~*" -delete +echo lösche \"WP~*\" +find de/ -type f -name "WP~*" -delete diff --git a/rename.pl b/rename.pl new file mode 100755 index 0000000..c09e816 --- /dev/null +++ b/rename.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +use File::Find; +use Encode; + +$pwd = $ENV{PWD}; +find(\&filehandler, "de"); + +sub filehandler { + if(/\.html$/) { + $_ = decode_utf8($_); + if($_ =~ s/(.+?\p{Lu}+.*?)_[a-f0-9]{4}\.html/$1/) { + $_ = encode_utf8($_); + rename( "$pwd/$File::Find::name", "$pwd/$File::Find::dir/$_"); + } elsif($_ =~ s/(.+?)\.html/$1/) { + $_ = encode_utf8($_); + rename( "$pwd/$File::Find::name", "$pwd/$File::Find::dir/$_"); + } else { + print "couldn't find filename pattern in $File::Find::name\n"; + } + } +} + +#DONE: richtiges umbenennen der files - siehe mediawiki/trunk/phase3/maintenance/dumpHTML.inc -> function getFriendlyName diff --git a/stats b/stats new file mode 100644 index 0000000..0d9a730 --- /dev/null +++ b/stats @@ -0,0 +1,71 @@ +==originial p7z: + size: 2,124,093 + dirs: 34125 + files: 1724658 + +==entpackt: + size: 26,124,760 + +==löschung unnützer dateien: + size: 15,884,704 + files: 1135661 + + **davon: + kaputt: 116 + links: 454132 + +==hinzufügen der links.list files TODO: dateigröße nach unten +#create_linkindex.pl + size: 16,004,220 + files: 1156229 + +==löschen der links: +#find de/ -size -2k -type f -name '*.html' -delete + size: 14,183,948 + files: 701044 + +==extrahieren des inhalts +#extract_content.pl + size: 8575264 + +==whitespaces und kommentare entfernen +#clean_whitespaces_comments.pl + size: 8509992 + +==editsection einträge entfernen +#clean_edits.pl + size: 8197228 + +==title attribute entfernen +#clean_titles.pl + size: 7400248 + +==tex images umwandeln +#clean_tex.pl + size: 7395216 + +==links umwandeln TODO: mit clean titles zusammenlegen +#clean_links.pl + size: 6774260 + +==thumbnail boxen löschen +#clean_thumbnails.pl + size: 6515720 + +==spans, class attr, style attr. löschen +#clean_css_markup.pl + size: 5995296 + +==bilder löschen +#clean_images.pl + size: 5730456 + +==alle umbenennen +find de/ -type f | rename 's/^(.+?\/.{1,2}\/.{1,2}\/.{1,2}\/)(.+?[[:upper:]]+.*?)(_[a-f0-9]{4})\.html$/$1$2/' -- + +find de/ -type f | rename 's/^(.+?\/.{1,2}\/.{1,2}\/.{1,2}\/)(.+?)\.html$/$1$2/' -- + + +in april: 664444 items, totalling 3.5 GB => 1GB + 701044 => 1.1GB + diff --git a/test.pl b/test.pl new file mode 100644 index 0000000..f54297f --- /dev/null +++ b/test.pl @@ -0,0 +1,7 @@ +#!/usr/bin/perl -w + +$test = "%6d%69%74%73%75%68%69%6b%6f%40%75%62%75%6e%74%75%2e%63%6f%6d"; + +$test =~ s/%([0-9a-f]{2})/chr(hex($1))/eg; + +print $test; diff --git a/time b/time new file mode 100644 index 0000000..aff4732 --- /dev/null +++ b/time @@ -0,0 +1,9 @@ +remove 11m +extract 110m +remove_files 22m +create_links - +delete_links 12m +remove_everyth 118m +remove_catlink 31m +rename 11m +mksquashfs 62m