사용자:Utoleetest/libre maps: 두 판 사이의 차이

(리브레 맵스 대량 추가 스크립트 추가했습니다.)
 
잔글 (소스 오류 제거)
4번째 줄: 4번째 줄:
# 파이썬과 Pywikibot은 설치되어야 합니다. [[Pywikibot]] 문서 참조.
# 파이썬과 Pywikibot은 설치되어야 합니다. [[Pywikibot]] 문서 참조.
# 그 다음 '''pwb.py가 있는 디렉토리에''' 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다.
# 그 다음 '''pwb.py가 있는 디렉토리에''' 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다.
<syntaxhighlight lang=csv>
<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 판

틀:리브레 맵스 마커를 많은 문서에 추가할 때 사용하는 스크립트입니다.

사용방법

  1. 파이썬과 Pywikibot은 설치되어야 합니다. Pywikibot 문서 참조.
  2. 그 다음 pwb.py가 있는 디렉토리에 아래와 같은 형식의 csv 파일을 작성합니다. 메모장으로 작성해도 됩니다만 중요한 것은 반드시 텍스트 포맷이 utf-8로 저장되게 해야 한다는 점입니다. 아래는 예시입니다. 반드시 데이터마다 반점 찍는 것은 지켜주세요. 데이터를 비우고 싶을 때는 -표시를 이용하거나 그냥 반점을 연속해서 찍으면 됩니다.
article,longitude,latitude,magnify,markername
종로구,37.581,126.984,10,-
  1. 다음 아래의 소스코드를 복사/붙여넣기 후에 pywikibot이 설치된 폴더에서 scripts/userscripts에 libre_maps.py로 저장합니다.(커스텀 스크립트를 저장할 수 있는 곳)
  2. 다 준비가 되었다면 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()