Benutzer:TextsucheBot/Code/aktuell
< Benutzer:TextsucheBotVersion vom 15. November 2014, 20:37 Uhr von imported>Plasmarelais (V 1.0.3)
@echo off set VERSION=1.0.3 :: kombiniere Namensraum und Kategorie / Suchstring in Seitentitel / Abfragen ob Browser & Ende / -ref deaktiviert / header :: Dieses Programm steht unter der CC-BY-NC-Lizenz 2.0 :: Erstelle Zeitstempel IF "%DATE:~0,1%" GTR "3" ( SET DATETIME=%DATE:~9,4%-%DATE:~6,2%-%DATE:~3,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% ) ELSE ( :: ASSUMES SHORTDATE DDxMMxYYYY SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% ) :: CORRECT FOR HOURS BELOW 10 IF %DATETIME:~8,2% LSS 10 SET DATETIME=%DATETIME:~0,8%0%DATETIME:~9,5% :: ECHO %DATETIME% title=TextsucheBot (Version %VERSION%) mode con lines=30 cols=80 :home call :header echo [1] Suche in einer Kategorie echo [2] Suche in einer Kategorie und all ihren Unterkategorien echo [3] Suche in einem Namensraum (ACHTUNG: ggf. zeitintensiv!) echo [4] Suche in allen Seiten, die auf eine bestimmte Seiten zeigen echo [5] Suche in allen Seiten, auf die eine bestimmte Seite zeigt echo [6] Rufe alle bisherigen Suchergebnisse auf echo [7] Stelle eine Frage zu diesem Tool echo [8] Info echo [9] Beenden echo. :: Erfrage Auswahl set /p asw="Bitte Auswahl eingeben: " if %asw%==1 goto Suche_cat if %asw%==2 goto Suche_catr if %asw%==3 goto Suche_ns if %asw%==4 goto Suche_ref if %asw%==5 goto Suche_links if %asw%==6 goto Suchergebnisse if %asw%==7 goto Help if %asw%==8 goto Info if %asw%==9 goto ende cls echo. echo Falsche Eingabe. Bitte gib eine Zahl zwischen 1 und 9 ein. echo. set /p ENDE=Drcke "Eingabe" um zum Startbildschirm zu gehen... goto home :: ========== Suche Kategorie ========== :Suche_cat :: Erfrage die zu durchsuchende Kategorie call :header set /p KATEGORIE="Gib eine Kategorie ein, in der gesucht werden soll. Z.B. "Bild (Person)" (ohne Anfhrungszeichen): " set NS-ERR=0 :Suche_cat_setNS call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% :: Erfrage NAMENSRAUM echo. echo Soll die Suche auf einen bestimmten Namensraum begrenzt werden? Gib einen Namensraum ein, auf den die Suche eingeschr„nkt werden soll: echo. echo [0] ALLE Namensr„ume echo. echo [1] Artikelnamensraum [6] Vorlage echo [2] Datei [7] Hilfe echo [3] Benutzer [8] Kategorie echo [4] Memory Alpha [9] Portal echo [5] MediaWiki [10] Forum echo. if %NS-ERR%==0 goto Suche_cat_setNS_ERR1 echo Falsche Eingabe. Bitte gib eine Zahl zwischen 0 und 10 ein. echo. :Suche_cat_setNS_ERR1 set /p ns="Bitte Auswahl eingeben: " cls if %ns% LEQ 10 goto Suche_cat_setNS_ERR set NS-ERR=1 goto Suche_cat_setNS :Suche_cat_setNS_ERR call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% if %ns%==1 set NAMENSRAUM=0 if %ns%==2 set NAMENSRAUM=6 if %ns%==3 set NAMENSRAUM=2 if %ns%==4 set NAMENSRAUM=4 if %ns%==5 set NAMENSRAUM=8 if %ns%==6 set NAMENSRAUM=10 if %ns%==7 set NAMENSRAUM=12 if %ns%==8 set NAMENSRAUM=14 if %ns%==9 set NAMENSRAUM=102 if %ns%==10 set NAMENSRAUM=110 if %ns%==1 set NAMENSRAUMNAME=Artikelnamensraum if %ns%==2 set NAMENSRAUMNAME=Datei if %ns%==3 set NAMENSRAUMNAME=Benutzer if %ns%==4 set NAMENSRAUMNAME=Memory_Alpha if %ns%==5 set NAMENSRAUMNAME=MediaWiki if %ns%==6 set NAMENSRAUMNAME=Vorlage if %ns%==7 set NAMENSRAUMNAME=Hilfe if %ns%==8 set NAMENSRAUMNAME=Kategorie if %ns%==9 set NAMENSRAUMNAME=Portal if %ns%==10 set NAMENSRAUMNAME=Forum echo -^> Es wird gesucht im Namensraum: %NAMENSRAUMNAME% (NS %NAMENSRAUM%) echo. :: Setz Namen die Zieldatei für die Suchergebnisse set DATEINAME=%DATETIME% echo. :: Erfrage den Such-String set /p SUCHSTRING="Gib den Text ein, nach dem gesucht werden soll. Z.B. "Name=Data" (ohne Anfhrungszeichen): " call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% echo -^> Es wird gesucht im Namensraum: %NAMENSRAUMNAME% (NS %NAMENSRAUM%) echo -^> Es wird gesucht nach dem String: %SUCHSTRING% if %ns%==0 goto Suche_cat_AllNS echo. :: Starte Suche in NS prg\pp.exe prg\pwb\find.py -cat:"%KATEGORIE%" -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" -ns:%NAMENSRAUM% goto Suche_cat_exec :Suche_cat_AllNS :: Starte Suche in allen NS prg\pp.exe prg\pwb\find.py -cat:"%KATEGORIE%" -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" goto Suche_cat_exec :Suche_cat_exec echo Es wurde die tempor„re Datei %DATEINAME%.txt erstellt. echo. ::Ersetze Sonderzeichen in SUCHSTRING set REPSTRING=%SUCHSTRING% call :replace set SUCHSTRING=%REPSTRING% :: Schreibe %ZIELSEITE% in "findupload-title.txt" echo '''User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%''' > prg\pwb\findupload-title.txt echo Dies sind die Seiten/Dateien in der [[:Kategorie:%KATEGORIE%]], die den String ^<code^>^<nowiki^>%SUCHSTRING%^</nowiki^>^</code^> enthalten:^<p^> > prg\pwb\findupload-head.txt echo %DATETIME%: "%SUCHSTRING%" -cat:"%KATEGORIE%" >> TextsucheBot.log goto processing :: ========== Suche Unterkategorie ========== :Suche_catr :: Erfrage die zu durchsuchende Kategorie call :header set /p KATEGORIE="Gib eine Kategorie ein, in der gesucht werden soll. Z.B. "Bild (Person)" (ohne Anfhrungszeichen): " set NS-ERR=0 :Suche_catr_setNS call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% und deren Unterkategorien :: Erfrage NAMENSRAUM echo. echo Soll die Suche auf einen bestimmten Namensraum begrenzt werden? Gib einen Namensraum ein, auf den die Suche eingeschr„nkt werden soll: echo. echo [0] ALLE Namensr„ume echo. echo [1] Artikelnamensraum [6] Vorlage echo [2] Datei [7] Hilfe echo [3] Benutzer [8] Kategorie echo [4] Memory Alpha [9] Portal echo [5] MediaWiki [10] Forum echo. if %NS-ERR%==0 goto Suche_catr_setNS_ERR1 echo Falsche Eingabe. Bitte gib eine Zahl zwischen 0 und 10 ein. echo. :Suche_catr_setNS_ERR1 set /p ns="Bitte Auswahl eingeben: " cls if %ns% LEQ 10 goto Suche_catr_setNS_ERR set NS-ERR=1 goto Suche_catr_setNS :Suche_catr_setNS_ERR call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% und deren Unterkategorien if %ns%==1 set NAMENSRAUM=0 if %ns%==2 set NAMENSRAUM=6 if %ns%==3 set NAMENSRAUM=2 if %ns%==4 set NAMENSRAUM=4 if %ns%==5 set NAMENSRAUM=8 if %ns%==6 set NAMENSRAUM=10 if %ns%==7 set NAMENSRAUM=12 if %ns%==8 set NAMENSRAUM=14 if %ns%==9 set NAMENSRAUM=102 if %ns%==10 set NAMENSRAUM=110 if %ns%==1 set NAMENSRAUMNAME=Artikelnamensraum if %ns%==2 set NAMENSRAUMNAME=Datei if %ns%==3 set NAMENSRAUMNAME=Benutzer if %ns%==4 set NAMENSRAUMNAME=Memory_Alpha if %ns%==5 set NAMENSRAUMNAME=MediaWiki if %ns%==6 set NAMENSRAUMNAME=Vorlage if %ns%==7 set NAMENSRAUMNAME=Hilfe if %ns%==8 set NAMENSRAUMNAME=Kategorie if %ns%==9 set NAMENSRAUMNAME=Portal if %ns%==10 set NAMENSRAUMNAME=Forum echo -^> Es wird gesucht im Namensraum: %NAMENSRAUMNAME% (NS %NAMENSRAUM%) echo. :: Setz Namen die Zieldatei für die Suchergebnisse set DATEINAME=%DATETIME% echo. :: Erfrage den Such-String set /p SUCHSTRING="Gib den Text ein, nach dem gesucht werden soll. Z.B. "Name=Data" (ohne Anfhrungszeichen): " call :header echo -^> Es wird gesucht in der Kategorie: %KATEGORIE% und deren Unterkategorien echo -^> Es wird gesucht im Namensraum: %NAMENSRAUMNAME% (NS %NAMENSRAUM%) echo -^> Es wird gesucht nach dem String: %SUCHSTRING% if %ns%==0 goto Suche_catr_AllNS echo. :: Starte Suche in NS prg\pp.exe prg\pwb\find.py -catr:"%KATEGORIE%" -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" -ns:%NAMENSRAUM% goto Suche_catr_exec :Suche_catr_AllNS :: Starte Suche in allen NS prg\pp.exe prg\pwb\find.py -catr:"%KATEGORIE%" -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" goto Suche_catr_exec :Suche_catr_exec echo Es wurde die tempor„re Datei %DATEINAME%.txt erstellt. echo. ::Ersetze Sonderzeichen in SUCHSTRING set REPSTRING=%SUCHSTRING% call prg\rep.bat set SUCHSTRING=%REPSTRING% :: Schreibe %ZIELSEITE% in "findupload-title.txt" echo '''User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%''' > prg\pwb\findupload-title.txt echo Dies sind die Seiten/Dateien in der [[:Kategorie:%KATEGORIE%]] und deren Unterkategorien, die den String ^<code^>^<nowiki^>%SUCHSTRING%^</nowiki^>^</code^> enthalten:^<p^> > prg\pwb\findupload-head.txt echo %DATETIME%: "%SUCHSTRING%" -catr:"%KATEGORIE%" >> TextsucheBot.log goto processing :: ========== Suche Namensraum ========== :Suche_ns :: Erfrage die zu durchsuchende Kategorie call :header echo Gib einen Namensraum ein, der durchsucht werden soll: echo. echo [1] Artikelnamensraum echo [2] Datei echo [3] Benutzer echo [4] Memory Alpha echo [5] MediaWiki echo [6] Vorlage echo [7] Hilfe echo [8] Kategorie echo [9] Portal echo [10] Forum echo. set /p ns="Bitte Auswahl eingeben: " if %ns%==1 set NAMENSRAUM=0 if %ns%==2 set NAMENSRAUM=6 if %ns%==3 set NAMENSRAUM=2 if %ns%==4 set NAMENSRAUM=4 if %ns%==5 set NAMENSRAUM=8 if %ns%==6 set NAMENSRAUM=10 if %ns%==7 set NAMENSRAUM=12 if %ns%==8 set NAMENSRAUM=14 if %ns%==9 set NAMENSRAUM=102 if %ns%==10 set NAMENSRAUM=110 if %ns%==1 set NAMENSRAUMNAME=Artikelnamensraum:! if %ns%==2 set NAMENSRAUMNAME=Datei:! if %ns%==3 set NAMENSRAUMNAME=Benutzer:! if %ns%==4 set NAMENSRAUMNAME=Memory_Alpha:! if %ns%==5 set NAMENSRAUMNAME=MediaWiki:! if %ns%==6 set NAMENSRAUMNAME=Vorlage:! if %ns%==7 set NAMENSRAUMNAME=Hilfe:! if %ns%==8 set NAMENSRAUMNAME=Kategorie:! if %ns%==9 set NAMENSRAUMNAME=Portal:! if %ns%==10 set NAMENSRAUMNAME=Forum:! call :header echo Es wird gesucht im Namensraum: %NAMENSRAUMNAME%. :: Setze Namen die Zieldatei fuer die Suchergebnisse set DATEINAME=%DATETIME% :: Erfrage den Such-String echo. set /p SUCHSTRING="Gib den Text ein, nach dem gesucht werden soll. Z.B. "Name=Data" (ohne Anfhrungszeichen): " :: Starte Suche prg\pp.exe prg\pwb\find.py -start:%NAMENSRAUMNAME% -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" echo. echo Es wurde die tempor„re Datei %DATEINAME%.txt erstellt. ::Ersetze Sonderzeichen in SUCHSTRING set REPSTRING=%SUCHSTRING% call prg\rep.bat set SUCHSTRING=%REPSTRING% :: Schreibe %ZIELSEITE% in "findupload-title.txt" echo '''User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%''' > prg\pwb\findupload-title.txt echo Dies sind die Seiten/Dateien im Namensraum %NAMENSRAUMNAME%, die den String ^<code^>^<nowiki^>%SUCHSTRING%^</nowiki^>^</code^> enthalten:^<p^> > prg\pwb\findupload-head.txt echo %DATETIME%: "%SUCHSTRING%" -ns:%NAMENSRAUM% >> TextsucheBot.log goto processing :: ========== Suche Ref ========== :Suche_ref echo. echo Diese Funktion ist derzeit nicht verfgbar. set /p ENDE=Drcke "Eingabe" um zum Startbildschirm zurckzukehren. goto home :: Erfrage die Seite, auf die verlinkt wird call :header set /p REF-ZIEL="Gib einen Seitentitel ein. Es werden dann alle Seiten durchsucht, die auf diese Seite verlinken. Z.B. "Spock (Spiegeluniversum)" (ohne Anfhrungszeichen): " cls echo. echo Es werden die Seiten durchsucht, die auf %REF-ZIEL% verlinken. :: Setz Namen die Zieldatei fuer die Suchergebnisse set DATEINAME=%DATETIME% :: Erfrage den Such-String echo. set /p SUCHSTRING="Gib den Text ein, nach dem gesucht werden soll. Z.B. "Name=Data" (ohne Anfhrungszeichen): " :: Starte Suche ohne regex echo prg\pp.exe prg\pwb\find.py -ref:%REF-ZIEL% -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" prg\pp.exe -i prg\pwb\find.py -ref:%REF-ZIEL% -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" echo. echo Es wurde die tempor„re Datei %DATEINAME%.txt erstellt. :: Schreibe %ZIELSEITE% in "findupload-title.txt" echo '''User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%''' > prg\pwb\findupload-title.txt echo Dies sind die Seiten/Dateien, die auf %REF-ZIEL% verlinken und den String ^<code^>^<nowiki^>%SUCHSTRING%^</nowiki^>^</code^> enthalten:^<p^> > prg\pwb\findupload-head.txt echo %DATETIME%: "%SUCHSTRING%" -ref:"%REF-ZIEL%" >> TextsucheBot.log goto processing :: ========== Suche Links ========== :Suche_links :: Erfrage die Seite, die auf die Suchziele verlinkt call :header set /p LINK-SEITE="Gib einen Seitentitel ein. Es werden dann alle Seiten durchsucht, auf die diese Seite verweist. Z.B. "Spock (Spiegeluniversum)" (ohne Anfhrungszeichen): " echo. echo Es werden die Seiten durchsucht, auf die %LINK-SEITE% verweist. :: Setz Namen die Zieldatei fuer die Suchergebnisse set DATEINAME=%DATETIME% :: Erfrage den Such-String echo. set /p SUCHSTRING="Gib den Text ein, nach dem gesucht werden soll. Z.B. "Name=Data" (ohne Anfhrungszeichen): " :: Starte Suche prg\pp.exe prg\pwb\find.py -links:"%LINK-SEITE%" -dateiname:"%DATEINAME%.txt" "%SUCHSTRING%" "###" echo. echo Es wurde die tempor„re Datei %DATEINAME%.txt erstellt. ::Ersetze Sonderzeichen in SUCHSTRING set REPSTRING=%SUCHSTRING% call prg\rep.bat set SUCHSTRING=%REPSTRING% :: Schreibe %ZIELSEITE% in "findupload-title.txt" echo '''User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%''' > prg\pwb\findupload-title.txt echo Dies sind die Seiten/Dateien, auf die %LINK-SEITE% verweist und die den String ^<code^>^<nowiki^>%SUCHSTRING%^</nowiki^>^</code^> enthalten:^<p^> > prg\pwb\findupload-head.txt echo %DATETIME%: "%SUCHSTRING%" -links:"%LINK-SEITE%" >> TextsucheBot.log goto processing :: ========== Help ========== :Help start "" "http://plasmarelais.url.ph/ma-mail/plasmarelais.htm" goto home :: ========== Suchergebnisse ========== :Suchergebnisse start "" "http://de.memory-alpha.org/wiki/Special:Prefixindex/Benutzer:TextsucheBot/Suchergebnis" goto home :: ========== Processing ========== :processing :: Fuehre die Dateien zur Uploadvorlage zusammen copy /b "prg\pwb\findupload-start.txt"+"prg\pwb\findupload-title.txt"+"prg\pwb\findupload-head.txt"+"prg\pwb\%DATEINAME%.txt"+"prg\pwb\findupload-ende.txt" "prg\pwb\findupload.txt" :: Loesche temporaere Dateien del "prg\pwb\%DATEINAME%.txt" del "prg\pwb\findupload-head.txt" :: Lege die Seite im Wiki an prg\pp.exe prg\pwb\pagefromfile.py -notitle -file:"prg\pwb\findupload.txt" :: Replace.py und Add_text.py: Absätze, Links, Nummerierung prg\pp.exe prg\pwb\replace.py -always -page:"Benutzer:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%" -regex "#\[\[:" "\n#[[:" :: Endausgabe mit Link echo. echo Die geordnete Liste findet sich nun auf der Memory-Alpha-Seite "User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%". echo. set /p BROWSER=Soll diese Seite nun im Browser ge”ffnet werden? (J/N) if %BROWSER%==N goto Frage_Neustart if %BROWSER%==n goto Frage_Neustart :: Ruft die neue Seite im Wiki auf start "" "http://de.memory-alpha.org/wiki/User:TextsucheBot/Suchergebnis/%DATETIME%_%SUCHSTRING%" :Frage_Neustart echo. set /p ENDE=Soll eine weitere Suche gestartet werden? (J/N) if %ENDE%==J goto home if %ENDE%==j goto home goto ende :: ========== Info ========== :Info call :header echo TextsucheBot V. %VERSION% echo. echo Dieses Programm wurde von Plasmarelais (maurl.de.vu/plasmarelais) geschrieben und nutzt das pywikipediabot-Framework sowie PortablePython 2.7. echo. echo Quelle fr das Icon: http://findicons.com/pack/108/pastel echo. set /p ENDE=Drcke "Eingabe" um zum Startbildschirm zurckzukehren. goto home :header cls echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º Textsuche in der Memory Alpha mit dem TextsucheBot º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. :replace set STRING0=%REPSTRING% set STRING1=%STRING0:#=_% set STRING2=%STRING1:|=_% set STRING3=%STRING2:[=_% set STRING4=%STRING3:]=_% set STRING5=%STRING4:{=_% set STRING6=%STRING5:}=_% ::set STRING7=%STRING6:^>=_% ::set STRING8=%STRING7:^<=_% set REPSTRING=%STRING6% goto :eof :: ========== ENDE ========== :ende pause