คู่มือการใช้ไพวิกิพีเดีย/พื้นฐานการเขียนสคริปต์

« คู่มือการใช้ไพวิกิพีเดีย
พื้นฐานการเขียนสคริปต์
»
ใช้งาน login.py ช่วยพัฒนาที่ sourceforge.net


การเขียนสคริปต์ เป็นการเขียนโปรแกรมให้บอตทำหน้าที่ตามที่ต้องการ ซึ่งยืดหยุ่นกว่าการใช้สคริปต์มากนัก เพราะไม่มีข้อจำกัดด้านการติดต่อกับไลบรารี

อย่างไรก็ตาม ก่อนจะทำการเขียนสคริปต์ ขอแนะนำให้อ่าน พื้นฐานการใช้งานสคริปต์ และลองใช้สคริปต์เสียก่อน เพื่อให้รู้ว่าสคริปต์ใดทำหน้าที่อะไรบ้าง เพื่อที่จะได้นำมาประยุกต์ใช้เขียนสคริปต์ได้อย่างมีประสิทธิภาพ

การอ่านและเขียนข้อมูล แก้ไข

# -*- coding: utf-8 -*-

import sys, os
sys.path.append(os.path.expanduser("~/pywikipedia"))

import wikipedia as pywikibot

site = pywikibot.getSite()
page = pywikibot.Page(site, u"ขั้นตอนวิธี")
content = page.get()
print content

page.put(u"{{ต้องการอ้างอิง}}\n" + content, u"ใส่ป้ายต้องการอ้างอิง")

pywikibot.stopme()
บรรทัดที่ คำอธิบาย
1 เป็นการบอกว่าเราจะทำงานกับอักขระ unicode ซึ่งเป็นชุดอักขระที่มีเดียวิกิใช้
3 - 4 เป็นการบอกว่าให้เข้าถึงไลบรารี pywikipedia ที่ติดตั้งไว้ หากติดตั้ง pywikipedia ที่อื่น (ไม่ใช่ที่ Home directory) โปรดเปลี่ยนให้ถูกต้องด้วย
6 เป็นการเรียกใช้โมดูล wikipedia (wikipedia.py) ซึ่งเป็นโมดูลพื้นฐานของไลบรารี pywikipedia ทำให้เราสามารถอ่านและเขียนหน้าต่าง ๆ ได้ ตั้งชื่อเล่นโมดูลนี้ว่า pywikibot
8 ฟังก์ชั่น pywikibot.getSite() จะให้ข้อมูลของ site ที่เราทำงานอยู่ (เช่นทำงานบน wikibooks ภาษาไทย) ซึ่งส่วนใหญ่จะจำเป็นต้องใช้ค่านี้ในการดำเนินการต่าง ๆ
9 ฟังก์ชัน pywikibot.Page() ให้ object page ซึ่งสามารถอ่านและเขียนหน้าได้ รับพารมิเตอร์สองตัว คือ (1) ตัวแปร site (2) ชื่อของหน้า จากตัวอย่าง หน้าที่กำลังดำเนินการคือ "ขั้นตอนวิธี"
10 เป็นการใช้ method get ของ object page ซึ่งจะได้ string ของเนื้อหาในหน้ากลับมา
11 พิมพ์เนื้อหาออกมาสู่ standard output
13 เป็นการใช้ method put ของ object page ซึ่งจะเป็นการเขียนข้อมูลกลับเข้าไปที่หน้า มีพารามิเตอร์ 2 ตัวคือ (1) string ข้อมูลที่ต้องการจะเขียนเข้าไปที่หน้า (2) คำอธิบายย่อ จากตัวอย่างเป็นการเพิ่มป้าย "ต้องการอ้างอิง" เข้าไปที่บนสุดของหน้า
15 ฟังก์ชัน pywikibot.stopme() เป็นการบอกว่าให้บอตหยุดการทำงาน

รายละเอียดเพิ่มเติมของฟังก์ชั่น get และ put โปรดอ่านที่ /wikipedia.py

ฟังก์ชันจากโมดูลต่าง ๆ แก้ไข

wikipedia.py โมดูลพื้นฐานของไลบรารี pywikipedia
replace.py ไม่มีความจำเป็นต้องใช้ เพราะสามารถใช้ string.replace() หรือ re.sub() ในการค้นหาและแทนที่ได้อยู่แล้ว มีเพียง exceptinsidetag เท่านั้นที่ดูยุ่งยากและไม่สามารถเขียนได้ง่าย ๆ อย่างไรก็ตามความสามารถ exceptinsidetag เป็นความสามารถของ /wikipedia.py ดังนั้นจึงไม่มีความจำเป็นต้องใช้ไฟล์นี้แต่อย่างใด
pagefromfile.py ไม่มีความจำเป็นต้องใช้ เพราะสามารถเขียนโปรแกรมดำเนินการเองได้อยู่แล้ว

การติดต่อกับ api เอง แก้ไข

ดูเพิ่ม แก้ไข