Utoleetest (토론 | 기여) (리브레 맵스 대량 추가 스크립트 추가했습니다.) |
Utoleetest (토론 | 기여) 잔글 (소스 오류 제거) |
||
4번째 줄: | 4번째 줄: | ||
# 파이썬과 Pywikibot은 설치되어야 합니다. [[Pywikibot]] 문서 참조. | # 파이썬과 Pywikibot은 설치되어야 합니다. [[Pywikibot]] 문서 참조. | ||
# 그 다음 '''pwb.py가 있는 디렉토리에''' 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다. | # 그 다음 '''pwb.py가 있는 디렉토리에''' 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다. | ||
<syntaxhighlight | <syntaxhighlight> | ||
article,longitude,latitude,magnify,markername | article,longitude,latitude,magnify,markername | ||
종로구,37.581,126.984,10,- | 종로구,37.581,126.984,10,- |
2021년 3월 30일 (화) 02:30 판
틀:리브레 맵스 마커를 많은 문서에 추가할 때 사용하는 스크립트입니다.
사용방법
- 파이썬과 Pywikibot은 설치되어야 합니다. Pywikibot 문서 참조.
- 그 다음 pwb.py가 있는 디렉토리에 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다.
article,longitude,latitude,magnify,markername
종로구,37.581,126.984,10,-
- 다음 아래의 소스코드를 복사/붙여넣기 후에 pywikibot이 설치된 폴더에서 scripts/userscripts에 libre_maps.py로 저장합니다.(커스텀 스크립트를 저장할 수 있는 곳)
- 다 준비가 되었다면 cd C:/(Pywikibot이 설치된 카테고리) 명령어를 이용해 Pywikibot이 있는 폴더로 이동한 뒤에 커맨드 창에
> python pwb.py libre_maps
이라고 입력하면 작동합니다.
스크립트 소스
import pywikibot
import csv
f = open('libre_maps.csv', 'r', encoding='utf8')
rd = csv.reader(f)
"""
libre_maps.csv 파일은 pywikibot의 pwb.py 파일이 있는 디렉토리에 저장하시면 됩니다.
그리고 각 줄마다 아래와 같은 형식으로 입력해주세요.
(문서명),(위도),(경도),(마커가 표시될 최소 확대수준),(마커 이름)
데이터를 비울 때는 -를 사용하시면 됩니다.
예시
종로구,37.581,126.984,10,-
"""
#위키/목록 텍스트 추출
site = pywikibot.Site('ko', 'libre')
for line in rd:
if line[0]!='article':
page = pywikibot.Page(site, line[0])
# 페이지 넘겨주기인지 확인
if page.isRedirectPage():
page = page.getRedirectTarget()
if not page.isRedirectPage():
text = page.text
text +='\n'+f'{{{{리브레 맵스 마커|{line[1]}|{line[2]}{"|"+line[3] if (len(line[3])>0 and line[3]!="-" and line[3]!=" ") else "|"}{"|"+line[4] if len(line[4])>1 else ""}}}}}'
page.text = text
page.save(f'리브레 맵스 좌표 추가 : {line[1]}')
f.close()