Brugerdiskussion:PHansen/Botmateriale

Fra Wikipedia, den frie encyklopædi
Spring til navigation Spring til søgning

listpages.py ?[redigér wikikode]

Google med listpages filetype:py gav https://github.com/wikimedia/pywikibot-core/blob/master/scripts/listpages.py

Til Bruger:Savfisk: .. fortsat fra Wikipedia-diskussion:Stubprojekt#Stub for artikler med fisk

I det mindste i første omgang vi jeg kun finde de urls (parameter 'Websted') der er på de artikelsider hvor Skabelon:Infoboks kirke bruges. Jeg har indsat en liste her i sandkassen lavet via Speciel:Hvad linker hertil. Der er mellem 1900 og 2000 inkl. andet end artikelsider.

Spørgsmålet er vel så nu om den er til nogen nytte. Det jeg gerne vil have, er en lige så lang liste med parameteren 'Websted' pillet ud og listet op under hinanden i hvad der skal være en 'indfil' på min egen harddisk til et program der kan måle på længden. Hvis en url er mere end 28 karakterer lang, er den kanditat til en trunkering for at bevare en pæn infoboks. Kommet så langt kan jeg lave et lille program der måler længden.

Du skrev om din påtænkte bot (Wikipedia:Anmodning_om_botstatus#SavBot) "... som vil lave en liste over artikler som kan få skabelonen ..." så jeg forestiller mig at den kode (listpages.py ?) du brugte til det med lidt ændringer også kan bruges til en liste over {{Infoboks kirke}}.

Men det jeg ikke kan se for mig lige nu, er hvordan man besøger alle de knap 2000 artikelsider én ad gangen og piller parameteren 'Websted' ud og sender den til en selvstændig fil. Har du en idé til det. (Jeg håber ikke det er alt for dunkelt fremstillet).
-- Mvh PHansen (diskussion) 18. mar 2015, 11:41 (CET)

Hej PHansen
Et hurtigt svar. Jeg vil gerne prøve at hjælpe dig med det, men umiddelbart er der ikke nogle af de script, jeg arbejder med, som kan løse det. Det er fordi at scriptet kan give en liste med artikler, som indeholder en tekststreng som man søger efter. Den liste har du jo stort set. Jeg vil prøve at lede efter en løsning, men det vil tage lidt tid (et par dage) inden jeg kan vende tilbage. Det kan jo være at der er andre som har prøvet det før og en mulighed er jo at spørge på Wikipedia:Anmodning om botassistance. Du kan jo bare linke til denne artikel. Med venlig hilsen Savfisk (diskussion) 18. mar 2015, 12:45 (CET)

Fint. Det er ikke noget der haster. Jeg skal også fordøje nye koncepter ;) -- Mvh PHansen (diskussion) 18. mar 2015, 13:09 (CET)

Hej igen. Jeg har nu gået de to scripts, listpages.py og replace.py, igennem og de kan godt lave listen som du har i din sandkasse, men de kan ikke udskrive hvad der står på linjen "Websted". Jeg har også set på de øvrige script (www.mediawiki.org/wiki/Manual:Pywikibot/Scripts), som hører til pywikibot og jeg kan desværre ikke finde nogen som passer til dit formål. Som nævnt kan jeg kun det basale vedr. pywikibot, så det kan godt være jeg har overset noget. Men mit forslag vil være at bruge den liste du har (eller en lignede lavet med listpages - den vil jeg gerne lave) og så finde et program som kan læse artikelen og finde linien "Websted". Det kunne godt være HTML versionen af siden. Jeg kunne dog ikke lige finde et program med google. Med venlig hilsen Savfisk (diskussion) 19. mar 2015, 16:14 (CET)

Tak for indsatsen hidtil under alle omstændigheder. Se videre nedenfor. -- Mvh PHansen (diskussion) 19. mar 2015, 18:37 (CET)

Hvor lidt er nødvendigt[redigér wikikode]

Som Cgt skrev "... Egentlig behøver du ikke engang at logge ind til den slags ...". Jeg har hentet og udpakket pywikibot_core.tar.gz, men det er vel ikke nok? Hvor lidt ekstra mon er nødvendigt for fx at køre 'listpages.py' og lave den første fil, der må ligne den fra sandkassen meget?
-- Mvh PHansen (diskussion) 18. mar 2015, 11:41 (CET)

Jeg vil gerne prøve at hjælpe dig. Først og fremmest: Har du erfaring med programmering? --Cgt (diskussion) 19. mar 2015, 16:16 (CET)
Jeg er begyndt at arbejde på det. Jeg er kommet temmelig lagt, det mangler bare lidt finpudsning. Jeg har ikke tid til mere arbejde på det i dag, men jeg regner med at arbejde videre i morgen. Mvh. Cgt (diskussion) 19. mar 2015, 18:06 (CET)

[redigeringskonflikt
Kun amatørerfaring: på Windows med Delphi 3, en lille ting der søger gennem en csv-fil med bogposter (bl.a. 'sav-filer' fra Rex) ud fra et søgeord og leverer resultatet som en html-fil. Her på Linux eksperimenterede jeg lidt med python for et par år siden som et (forgæves) forsøg på en erstatning for den med Delphi. Og på Wikipedia Modul:Fhold og modulet til trunkeringen (eksempler her) med Lua - som kræver en lidt uvant måde at tænke det på.

Savfisks svar her ovenfor kunne tyde på, at et (måske eksisterende) pythonscript skal modificeres for at kunne pille parameteren 'Websted' ud af skabelonen {{Infoboks kirke}} på de enkelte artikelsider fra listen. Og det er vel knap noget for en nybegynder, så hjælp med at sætte det op vil være velkomment, og med at forstå hvori problemet ligger.

Efter mange "No module named wikipedia" lykkedes dette lige før lukketid:

~/pywikibot/core $ python pwb.py login -lang:da -family:wikipedia -user:PHansen
NOTE: 'user-config.py' was not found!
Please follow the prompts to create it:
...og efter en lang smøre:
Logged in on wikipedia:da as PHansen. 

-- Mvh PHansen (diskussion) 19. mar 2015, 18:37 (CET)

Jeg fik lige en halv time til at gøre det færdigt i dag alligevel. Jeg har lavet en tabel med kirkelinksne til dig her, sorteret i faldende orden efter URL-længde: Bruger:Cgt/Kirker. Jeg lavede et pywikibotprogram baseret på basic.py-skabelonen og hev infoboksparametren ud med et bibliotek, der hedder mwparserfromhell, så det var faktisk ikke så svært. Dette script genererer så en kolonsepareret tekstfil med rapporten. Jeg har derefter manipuleret denne fil på flere forskellige måder ved brug af flere forskellige tekstredigeringsværktøjer og derved skabt tabellen. Jeg har lagt scriptet op her: https://gist.github.com/cgt/9df8afdbfa1c7ab2f348. Jeg har brugt Python 3 (ikke 2) til at køre det, så vær opmærksom på dette, hvis du selv vil køre det. Håber du kan bruge det. Mvh. Cgt (diskussion) 19. mar 2015, 21:36 (CET)

Det er meget fint, og jeg siger mange tak. URL-længderne er jo lige til at bruge, så jeg kan gå videre med at afprøve trunkeringsmodulet. Der er ca. 120 urls med en længde over de 28 karakterer. De kan nu let kontrolleres for at se at der ikke sker noget utilsigtet. Med Python må jeg gå fra noget simpelt der virker uden fejlmeldinger til det mere komplicerede, og ikke mindst lære at tolke fejlmeldingerne. Pythonscriptet kan så blive model for en lignende høst af andre ting. Begge dele en stor hjælp; der er rigeligt til mange ugers læreproces. -- Mvh PHansen (diskussion) 20. mar 2015, 10:14 (CET)

Jeg siger også tak. Det er fornøjelse at se hvordan opgaven blev taklet, og scriptet kan sikkert blive værdifuldt i andre sammenhænge. Mvh. Savfisk (diskussion) 20. mar 2015, 13:48 (CET)

Listens anvendelse[redigér wikikode]

Jeg har lavet en side (Bruger:PHansen/Langeurls) hvor man kan se anvendelsen af listen til at vurdere hvordan lange urls vises i {{Infoboks kirke}} ved at tilføje en ekstra kolonne. Det viser sig at urls med bindestreg og skråstreg som oftest ikke forøger bredden, derimod er der i følgende eksempel intet tegn (bindestreg eller skråstreg) der kan bevirke ombrydning af den meget lange url

Websted www.dummyMEDmegetLANGurlLoremipsumdolorsitametconsecteturadipisicingelitseddoeiusmodtempor.dk


I den slags tilfælde er trunkering næppe den bedste metode, derimod burde koden lave et link som :
[http://www.dummyMEDmegetLANGurlLoremipsumdolorsitametconsecteturadipisicingelitseddoeiusmodtempor.dk Kirkens hjemmeside]
 : Kirkens hjemmeside

Men i praksis drejer det sig ikke om så mange som jeg troede, fordi de fleste urls enten er under de 28 tegn eller har en bindestreg eller stråstreg der tillader ombrydning.
-- Mvh PHansen (diskussion) 21. mar 2015, 18:24 (CET)

Det er jo et fint resultat. Uden scriptet havde det taget en krig af finde ud det. Mvh. Savfisk (diskussion) 21. mar 2015, 19:01 (CET)