본문으로 이동

Pywikipediabot 사용법/기능별

위키책, 위키책

윈도우에서의 인터위키 팁

[+/-]

최신

[+/-]
  • 옛날에는 윈도우즈의 cmd.exe에서 한글입력 출력이 에러가 났었는데, 지금은 나지 않습니다. 아무 추가적인 설정없이 바로 한글 입출력이 잘 됩니다. 따라서 아래의 경우 처럼
1 "가" 문서 인터위키시
interwiki.py %EA%B0%80

이렇게 예전에는 했어야 했는데, 지금은 제대로 한글입력이 됩니다. 즉,

1 "가" 문서 인터위키시
interwiki.py 가

이렇게, 바로 한글입력을 하면 제대로 처리가 됩니다.

옛날

[+/-]

다음의 문장들을 윈도우즈 바탕화면에 텍스트 파일로 만들어놓고, 필요할 때 복사해다가 cmd 창에 붙여넣기 하면 유용합니다. 윈도우에서 인터위키 할 때 유용하다. 리눅스에서는 별로 필요없다.

1 가
interwiki.py -start:%EA%B0%80 -autonomous -skipauto -force -lang:ko
2 나
interwiki.py -start:%EB%82%98 -autonomous -skipauto -force -lang:ko
3 다
interwiki.py -start:%EB%8B%A4 -autonomous -skipauto -force -lang:ko
4 라
interwiki.py -start:%EB%9D%BC -autonomous -skipauto -force -lang:ko
5 마
interwiki.py -start:%EB%A7%88 -autonomous -skipauto -force -lang:ko
6 바
interwiki.py -start:%EB%B0%94 -autonomous -skipauto -force -lang:ko
7 사
interwiki.py -start:%EC%82%AC -autonomous -skipauto -force -lang:ko
8 아
interwiki.py -start:%EC%95%84 -autonomous -skipauto -force -lang:ko
9 자
interwiki.py -start:%EC%9E%90 -autonomous -skipauto -force -lang:ko
10 차
interwiki.py -start:%EC%B0%A8 -autonomous -skipauto -force -lang:ko
11 카
interwiki.py -start:%EC%B9%B4 -autonomous -skipauto -force -lang:ko
12 타
interwiki.py -start:%ED%83%80 -autonomous -skipauto -force -lang:ko
13 파
interwiki.py -start:%ED%8C%8C -autonomous -skipauto -force -lang:ko
14 하
interwiki.py -start:%ED%95%98 -autonomous -skipauto -force -lang:ko
15 사용자:
interwiki.py -start:%EC%82%AC%EC%9A%A9%EC%9E%90: -autonomous -skipauto -force -lang:ko
16 위키백과:
interwiki.py -start:%EC%9C%84%ED%82 -autonomous -skipauto -force -lang:ko 
17 틀:
interwiki.py -start:%ED%8B%80: -autonomous -skipauto -force -lang:ko
18 분류:
interwiki.py -start:%EB%B6%84%EB%A5%98: -autonomous -skipauto -force -lang:ko

user-config.py 파일 설정

[+/-]

Wybot의 윈도우용 user-config.py 파일의 내용은 다음과 같다:

mylang='ko' 
usernames['wikipedia']['ar']='Wybot'
usernames['wikipedia']['de']='Wybot'
usernames['wikipedia']['en']='Wybot'
usernames['wikipedia']['es']='Wybot'
usernames['wikipedia']['fa']='Wybot'
usernames['wikipedia']['fi']='Wybot'
usernames['wikipedia']['fr']='Wybot'
usernames['wikipedia']['hu']='Wybot'
usernames['wikipedia']['it']='Wybot'
usernames['wikipedia']['ja']='Wybot'
usernames['wikipedia']['simple']='Wybot'
usernames['wikipedia']['ko']='Wybot'
usernames['wikipedia']['nl']='Wybot'
usernames['wikipedia']['no']='Wybot'
usernames['wikipedia']['pl']='Wybot'
usernames['wikipedia']['pt']='Wybot'
usernames['wikipedia']['ru']='Wybot'
usernames['wikipedia']['sv']='Wybot'
usernames['wikipedia']['tr']='Wybot'
usernames['wikipedia']['zh']='Wybot'
usernames['wikipedia']['ca']='Wybot'
usernames['wikipedia']['ro']='Wybot'
usernames['wikipedia']['uk']='Wybot'
usernames['wikipedia']['vo']='Wybot'
usernames['wikipedia']['id']='Wybot'
usernames['wikipedia']['bg']='Wybot'
usernames['wikipedia']['cs']='Wybot'
usernames['wikipedia']['da']='Wybot'
usernames['wikipedia']['eo']='Wybot'
usernames['wikipedia']['he']='Wybot'
usernames['wikipedia']['lt']='Wybot'
usernames['wikipedia']['sk']='Wybot'
usernames['wikipedia']['sl']='Wybot'
usernames['wikipedia']['sr']='Wybot'
# console-encoding = 'cp949'

login.py -all 명령어를 사용하여, 모든 곳에 동시 로그인이 가능하다.

리눅스용 설정은 다음과 같다:

mylang='ko' 
usernames['wikipedia']['en']='Wybot'
usernames['wikipedia']['es']='Wybot'
usernames['wikipedia']['de']='Wybot'
usernames['wikipedia']['fr']='Wybot'
usernames['wikipedia']['it']='Wybot'
usernames['wikipedia']['ja']='Wybot'
usernames['wikipedia']['ko']='Wybot'
usernames['wikipedia']['nl']='Wybot'
usernames['wikipedia']['pl']='Wybot'
usernames['wikipedia']['pt']='Wybot'
usernames['wikipedia']['ru']='Wybot'
usernames['wikipedia']['zh']='Wybot'
console_encoding = 'utf-8'

단축 아이콘 만들기

[+/-]
1. 윈도우즈 XP에서 단축 아이콘(바로 가기) 만들기이다.
2. 바탕화면에서 마우스 오른쪽 버튼 클릭
3. 새로만들기 -> 바로 가기
4. 바탕화면에 생긴 바로 가기에 적당한 이름 지워준다.
5. 만들어진 단축 아이콘에 마우스 오른쪽 버튼, 속성 클릭
6. 바로 가기 항목에서 대상 = %windir%\system32\cmd.exe /U
7. 시작 위치 = 봇이 설치된 폴더 (예를들면, C:/pywikipedia)
8. 확인 클릭

Vim 에디터

[+/-]

윈도우에서 소스 프로그램 에디터는 Vim을 추천함.

유닉스의 vi 에디터를 MS 윈도우즈용으로 바꾼 것으로, 공개 소프트웨어임. http://www.vim.org/

리눅스에서는 기본 에디터인 gedit 로 충분함.

쉽게 인터위키 하는 방법

[+/-]
  • 현재 내가 자주 쓰는 방법이다. -- 이원룡 2008년 5월 8일 (목) 00:00 (KST)
  • user-config.py에 등록해 놓은 모든 언어판 위키피디아에 동시에 모두 로그인 하기
  • 봇을 설치하고서, 맨 처음에 딱 한 번 해주면 된다. 혹은, user-config.py 에 새로운 언어판의 봇을 등록했다면, 최초에 딱 한번 해주면 된다. 한 번 로그인 하면 영원히 로그인이다. 더 암호 안 물어본다. ^^
login.py -all
  • 작업 중단하기
ctrl+c
  • 컴퓨터 다시 켜고 중단된 작업부터 시작하는 법
중단된 지점부터 알파벳 순서로 다시 인터위키 시작하기
interwiki.py -continue -autonomous
  • 위키백과의 틀: 으로 시작하는 문서들 인터위키 하기 (틀을 인터위키 했다가는, 차단될 가능성이 매우 높다. 틀 인터위키는 에러가 엄청나다.)
interwiki.py -start:틀: -autonomous

get.py

[+/-]
  • get.py 위키백과 | grep 위키 > results.txt
    • 이렇게 하면 위키백과 문서를 다운받아서 그 중 위키라는 단어가 들어간 문단만 파일에 저장된다고 한다. 그러나 에러나던데?
  • get.py 위키백과 | findstr 위키백과 > results.txt
    • 이렇게 하면 된단다. 리눅스에서 grep은 윈도우즈 XP에서는 findstr이라고 한다. 그래도 에러나던데?
  • get.py %EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC | findstr 위키 > results.txt
    • 아, 처음에 위키백과 부분은 유니코드가 어쩌고 해서 바로 써주면 안된단다. 옆에 찾기란에 "위키백과"라고 친다. 그럼 http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC 라고 나온다. 앞부분의 http://ko.wikipedia.org/wiki/ 를 잘라낸다. 그럼 "위키백과"에 해당하는 유니코드 부분은 %EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC 가 된다. 그걸 복사해다가 쓴다. 아이고 복잡해!! ㅜㅜ 뒤에 findstr 위키 부분은 그대로 한글 쳐주면 된다. 아이고 더 복잡해!!! ㅜㅜㅜ 그런데? 결과를 보니까...에러없이 잘 된다. ㅎㅎ

delete.py

[+/-]
  • 관리자 계정이 필요합니다.
  • 특정 분류에 들어있는 모든 문서를 전부 다 삭제해 버립니다.
  • 그러니까, 삭제검토가 끝났거나 해서 문서를 삭제할 필요가 있을 때, 일반 사용자들은 {{삭제대기}}틀을 붙여주고, 그러면 자동으로 분류:삭제대기 에 문서가 등록됩니다. 그럼 관리자는 매일 한 번씩 delete.py 를 실행시켜 주면, 삭제해야 할 문서들이 싹 다 자동으로 삭제되죠.

자동 실행 파일

[+/-]

리눅스에서 내가 쓰는 자동 실행 파일의 내용은 다음과 같다:

#!/bin/bash
cd ~/pywikipedia
svn update
cd ~/Wybot
python ~/pywikipedia/login.py -all
python ~/pywikipedia/interwiki.py -continue -autonomous
me@desktop:~$ cd ~
me@desktop:~$ gedit 1

그리고 위에 내용을 복사 -> 붙여넣기 -> 저장 -> gedit 종료

me@desktop:~$ chmod +x 1

다음부터는 컴퓨터 켜고, 아래와 같이 간단하게, 자동실행파일만 실행시켜 주면 로봇이 알아서 일한다.

리눅스 바탕화면에 단축 아이콘으로 만들어 놓고 클릭하는 방식이 더 간편하다.

종료할 때는 ctrl+c를 눌러 줄 것!

me@desktop:~$ ./1

ctrl+c


최근 바뀜만 인터위키 하기

[+/-]

우분투 환경에서 제가 쓰는 방법입니다.

위키백과에서 최근 바뀐 문서 500개를 자동으로 인터위키 합니다.

쉘 스크립트 작성

[+/-]
# gedit ri

grep title zz|grep -v 특수기능|grep -v 사용자|grep -v \>|grep -v 토론 > zzz
vi -c '%s/     title: //g|%s/^ /\[\[/g|%s/$/\]\]/g|wq' zzz
python ~/pywikipedia/interwiki.py -autonomus -skipauto -lang:ko -file:zzz

ri 파일 저장 후 gedit 종료

# chomod +x ri

쉘 스크립트 작성 완료

실행방법

[+/-]
파이어폭스에서

http://ko.wikipedia.org/w/api.php?action=query&list=recentchanges&rclimit=500&format=yamlfm

이것을 zz 파일명으로 저장

터미널 콘솔에서

# ./ri

플래그 봇

[+/-]

플래그 봇이 있다면, 봇으로 로그인 하는 경우, 5000개의 문서를 처리할 수 있다.

플래그 봇으로 로그인 하는 방법은 다음과 같다. 아직 내 봇인 Wybot은 플래그를 달지 못했다. 참고용이다.

http://ko.wikipedia.org/w/api.php?action=login&lgname=Wybot&lgpassword=암호입력

이렇게 링크를 입력하면 아래의 결과가 나온다

<?xml version="1.0" encoding="utf-8"?>
<api>
  <login result="Success" lguserid="252145" lgusername="Wybot" lgtoken="1351768d314573554c73" />
</api>

그러면 로그인 하여 출력된 정보를 그대로 사용한다.

http://ko.wikipedia.org/w/api.php?action=query&lgname=Wybot&lgpassword=암호입력&lguserid=252145&lgusername=Wybot&lgtoken=1351768d314573554c73&list=recentchanges&rclimit=5000&format=yamlfm

이렇게 하면 5000개의 문서를 처리할 수 있다.

특정 사용자의 최근 기여만 인터위키 하기

[+/-]

우분투 환경에서 제가 쓰는 방법입니다.

특정한 사용자의 최근 기여 500개 문서만 자동으로 인터위키 합니다.

쉘 스크립트 작성

[+/-]
# gedit us

grep title yy|grep -v 특수기능|grep -v 사용자|grep -v \>|grep -v 토론 > yyy
vi -c '%s/     title: //g|%s/^ /\[\[/g|%s/$/\]\]/g|wq' yyy
python ~/pywikipedia/interwiki.py -autonomus -skipauto -lang:ko -file:yyy

us 파일 저장 후 gedit 종료

# chomod +x us

쉘 스크립트 작성 완료

실행방법

[+/-]
파이어폭스에서

http://ko.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=WonYong&uclimit=500&format=yamlfm

이것을 yy 파일명으로 저장

터미널 콘솔에서

# ./us

위에 사이트 주소에서 ucuser=WonYong 부분을 원하는 위키백과 사용자명으로 고치면 그 사용자가 최근 편집한 500개의 문서를 자동으로 인터위키 합니다.

플래그 봇

[+/-]

플래그 봇이 있다면, 봇으로 로그인 하는 경우, 5000개의 문서를 처리할 수 있다.

플래그 봇으로 로그인 하는 방법은 다음과 같다. 아직 내 봇인 Wybot은 플래그를 달지 못했다. 참고용이다.

http://ko.wikipedia.org/w/api.php?action=login&lgname=Wybot&lgpassword=암호입력

이렇게 링크를 입력하면 아래의 결과가 나온다

<?xml version="1.0" encoding="utf-8"?>
<api>
  <login result="Success" lguserid="252145" lgusername="Wybot" lgtoken="1351768d314573554c73" />
</api>

그러면 로그인 하여 출력된 정보를 그대로 사용한다.

http://ko.wikipedia.org/w/api.php?action=query&lgname=Wybot&lgpassword=암호입력&lguserid=252145&lgusername=Wybot&lgtoken=1351768d314573554c73&list=usercontribs&ucuser=WonYong&uclimit=5000&format=yamlfm

이렇게 하면 5000개의 문서를 처리할 수 있다.

최근 기여 500문서만 인터위키 하기

[+/-]
  • 1. 윈도우즈 XP에서 사용하는 방법입니다.
  • 2. 빔이 설치되어 있어야 합니다. http://www.vim.org/
  • 3. filter.txt 파일을 아래와 같이 작성하여, C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다.
:%s/title/\rtitle/g
:%s/title: |/abcd/g
:%s/title: >/abcd/g
:g!/title:/d
:%s/title: /\[\[/g
:%s/$/\]\]/g
:sav! final.txt
:quit
  • 4. 다음의 웹페이지를 통째로 익스플로러로 불러들여서, 메모장에 복사해서 first.txt 파일로 저장합니다. 메모장에서 저장할 때는 다른 이름으로 저장...에서, UTF-8 형식의 문서로 저장해 주세요. C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다.

http://ko.wikipedia.org/w/api.php?action=query&list=recentchanges&rclimit=500&format=yamlfm

  • 5. cmd를 통해 C:\pywikipedia 폴더(봇이 설치된 폴더)에서 다음을 실행합니다.
C:\pywikipedia>vim -s filter.txt first.txt
C:\pywikipedia>interwiki.py -autonomus -skipauto -lang:ko -file:final.txt
  • 6. 여기서도, 플래그가 등록된 봇이라면, rclimit=5000으로 설정하여, 5000개의 문서까지 처리가 됩니다.
  • 7. 현재시점에서, 매우 잘 작동됩니다. -- 이원룡Talk 2008년 4월 25일 (금) 10:53 (KST)

특정 분류의 500문서만 인터위키 하기

[+/-]
  • 1. 윈도우즈 XP에서 사용하는 방법입니다. 빔이 설치되어 있어야 합니다. http://www.vim.org/
  • 2. filter.txt 파일을 아래와 같이 작성하여, C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다.
:%s/title/\rtitle/g
:%s/title: |/abcd/g
:%s/title: >/abcd/g
:g!/title:/d
:%s/title: /\[\[/g
:%s/$/\]\]/g
:sav! final.txt
:quit
  • 3. 다음의 웹페이지를 통째로 익스플로러로 불러들여서, 메모장에 복사해서 first.txt 파일로 저장합니다. 메모장에서 저장할 때는 다른 이름으로 저장...에서, UTF-8 형식의 문서로 저장해 주세요. C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다. 예제는 분류:영국 소설입니다.

http://ko.wikipedia.org/w/api.php?action=query&list=categorymembers&format=yamlfm&cmlimit=500&cmtitle=%EB%B6%84%EB%A5%98:%EC%98%81%EA%B5%AD_%EC%86%8C%EC%84%A4

  • 4. 예제 분류:영국 소설 말고 다른 분류의 문서를 인터위키 하시려면, cmtitle=%EB%B6%84%EB%A5%98:%EC%98%81%EA%B5%AD_%EC%86%8C%EC%84%A4 이 부분을 다른 것으로 고쳐주면 됩니다. 예를들어 분류:대한민국이라면, 일단 이 페이지를 열어서, 위에 주소창에 %EB%B6%84%EB%A5%98: 라고 시작되는 부분이 보일겁니다. 그걸 통째로 복사해서 위의 링크의 cmtitle= 부분을 고쳐주세요. 인터넷에서 한글 처리가 깨져서 이런 일이 발생합니다. ^^
  • 5. 플래그가 등록된 봇의 경우, cmlimit=500가 아니라 cmlimit=5000까지 허용합니다. 즉 5000개의 문서까지 처리할 수 있습니다.
  • 6. cmd를 통해 C:\pywikipedia 폴더(봇이 설치된 폴더)에서 다음을 실행합니다.
C:\pywikipedia>vim -s filter.txt first.txt
C:\pywikipedia>interwiki.py -autonomus -skipauto -lang:ko -file:final.txt
  • 7. 플래그가 등록된 봇의 경우, cmlimit=500가 아니라 cmlimit=5000까지 허용합니다. 즉 5000개의 문서까지 처리할 수 있습니다.
  • 8. 현재시점에서, 매우 잘 작동됩니다. -- 이원룡Talk 2008년 4월 25일 (금) 10:53 (KST)

특정 사용자의 최근 500문서만 인터위키 하기

[+/-]
  • 1. 윈도우즈 XP에서 사용하는 방법입니다. 빔이 설치되어 있어야 합니다. http://www.vim.org/
  • 2. filter.txt 파일을 아래와 같이 작성하여, C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다.
:%s/title/\rtitle/g
:%s/title: |/abcd/g
:%s/title: >/abcd/g
:g!/title:/d
:%s/title: /\[\[/g
:%s/$/\]\]/g
:sav! final.txt
:quit
  • 3. 다음의 웹페이지를 통째로 익스플로러로 불러들여서, 메모장에 복사해서 first.txt 파일로 저장합니다. 메모장에서 저장할 때는 다른 이름으로 저장...에서, UTF-8 형식의 문서로 저장해 주세요. C:\pywikipedia 폴더(봇이 설치된 폴더)에 저장합니다. 예제는 사용자:WonYong입니다.

http://ko.wikipedia.org/w/api.php?action=query&list=usercontribs&uclimit=500&format=yamlfm&ucuser=WonRyong

C:\pywikipedia>vim -s filter.txt first.txt
C:\pywikipedia>interwiki.py -autonomus -skipauto -lang:ko -file:final.txt
  • 7. 현재시점에서, 매우 잘 작동됩니다. -- WonRyong (토론) 2009년 5월 7일 (목) 09:49 (KST)

내 주시목록의 최근 500문서만 인터위키 하기

[+/-]
  • 1. 역시 윈도우즈 XP와 빔이 설치되어 있어야 합니다. 위에 계속 반복했죠? 헉헉~!!
  • 2. 바로 윗 항목인, 특정 사용자의 최근 500문서만 인터위키 하기 여기에서 4번의 링크만 아래로 바뀝니다. 나머지는 같구요, cmlimit=500이 아니라 wllimit=500인게 다르죠? 죄다 이런식입니다.

http://ko.wikipedia.org/w/api.php?action=query&list=watchlist&wllimit=500&format=yamlfm

  • 3. 이제 더 예제 설명 안해!! 짜증나!!! ㅋㅋ 완벽한 문법 설명은 http://ko.wikipedia.org/w/api.php 여기를 참조하세요. 여기 영어문서 좀 예제식으로 한글로 풀어쓴 것이랍니다. ^^ 한글로, 예제식으로 설명하니까 너무 쉽죠? 다른 사용례도 아시는 거 있다면, 직접 올려주세요. ^^
  • 4. 역시 현재시점에서 잘 됩니다. -- 이원룡Talk 2008년 4월 25일 (금) 11:39 (KST)

위키백과 주요 사용자들의 api 링크

[+/-]
  • 위에 특정 사용자 500 문서 인터위키 하기를 참고.
  • 아래는 위키백과의 주요한 편집자들의 링크입니다.
  • 백:명예를 참고.

윈도우에서의 인터위키

[+/-]

다음의 문장들을 윈도우즈 바탕화면에 텍스트 파일로 만들어놓고, 필요할 때 복사해다가 cmd 창에 붙여넣기 하면 유용합니다. 윈도우에서 인터위키 할 때 유용하다. 리눅스에서는 별로 필요없다.

cmd 창에서 다음을 바로 복사하면 문서부터 시작해서 인터위키를 처리한다.

C:\pywikipedia>interwiki.py -autonomous -skipauto -force -lang:ko -start:%EA%B0%80

그런데, interwiki_1.bat에 아래를 저장하고서 실행하면, 위와 결과가 같게 된다.

C:\pywikipedia>copy con interwiki_1.bat
interwiki.py -autonomous -skipauto -force -lang:ko -start:가
^z
C:\pywikipedia>interwiki_1

주의할 것은, interwiki2.bat에 아래를 저장하고서 실행하면, 에러가 난다는 것이다.

C:\pywikipedia>copy con interwiki_2.bat
interwiki.py -autonomous -skipauto -force -lang:ko -start:%EA%B0%80
^z
C:\pywikipedia>interwiki_2

현재 시점에서 실제 테스트한 결과다. -- 이원룡Talk 2008년 4월 26일 (토) 11:52 (KST)

기타 api 명령어 예제

[+/-]

인터위키 효율적으로 하기

[+/-]
  • 다른 언어판은 인터위키 하지 않고, 한국어판만 인터위키를 한다. 속도가 빠르게 된다.
interwiki.py -lang:ko -autonomous -localonly -start:사
  • 위의 의미는 이렇다. 문서 부터(-start:사) 자동으로 내림차순으로(-autonomous) 인터위키 하라! 한국어판에만!(-localonly)
vim -s filter.txt first.txt
  • C:\pywikipedia\in.bat을 실행한다. 다음의 내용이다.
interwiki.py -autonomus -skipauto -lang:ko -file:final.txt
  • 그려면, 최근에 한국어판에서 내 봇이 인터위키한 문서만 심층적으로, 다른 언어판도 전부 인터위키를 다시 한다.
  • 요약하면, 전체 인터위키를 한 번에 다 실행시키면 쓸데없는 문서들도 전부 수십개 언어판에서 다 인터위키를 불러오느라 번거롭다. 그래서, 일단 한국어판만 인터위키를 한 다음, 변동사항이 있는 문서만 찾아서 그 부분만 심층적으로 다른 언어판도 모두 인터위키를 하는 방법이다.
  • 그냥 이렇게 해봤는데, 좋은 거 같다. -- 이원룡 2008년 5월 7일 (수) 23:44 (KST)

최근바뀜 새 문서 5000개 문서를 인터위키 하기

[+/-]
  • 앞에 다른 항목에서 언급했던 내용입니다만, 인터위키 명령어를 새로 알았습니다.
interwiki.py -lang:ko -autonomous -localonly -new:5000