משתמש:Gloomy/WikiPolice
מתוך ויקיפדיה, האנציקלופדיה החופשית
WikiPolice הינו סקריפט שכתבתי שניתן להריץ על כל מחשב, אשר קורא את השינויים האחרונים ובודק מילים חשודות. אם הוא מוצא מילה חשודה הוא רושם אותה ואת הלינק החשוד. כך ניתן לבדוק במהירות את השינויים האחרונים כנגד מילים חשודות.
דוגמה להרצה:
C:\projects\wikiPolice>wikiPolice.py
possible abuse of word '!!!' in url: http://he.wikipedia.org/wiki/%D7%91%D7%9C%D7%90%D7%A8%D7%95%D7%A1
בנתיים כתבתי את הסקריפט לשורת הפקודה ע"מ לראות אם מישהו מעונין להשתמש בו. במידה וזה המצב, אפשר לשפרו ולכתוב לו ממשק נוח שבו יוכלו לראות גם עברית כמו שצריך. הנה הקוד שכתוב בPython:
import httplib
import elementtree.ElementTree as ET
import codecs
# read abused words
wordListCodec = open('wordlist.txt', 'r').read(3)
wordList = [x.replace('\n', '') for x in open('wordlist.txt', 'r').readlines()]
if wordListCodec == codecs.BOM_UTF8:
wordList[0] = wordList[0][3:]
# read recent changes
recentChangesUrl = r'http://he.wikipedia.org/w/index.php?title=%D7%9E%D7%99%D7%95%D7%97%D7%93:Recentchanges&feed=atom'
wikipediaConnection = httplib.HTTPConnection('he.wikipedia.org')
wikipediaConnection.request("GET", r'/w/index.php?title=%D7%9E%D7%99%D7%95%D7%97%D7%93:Recentchanges&feed=atom')
# build xml tree and find abuse
abusedUrls = {}
tree = ET.parse(wikipediaConnection.getresponse())
for entry in tree.findall('{http://www.w3.org/2005/Atom}entry'):
summaryText = entry.find('{http://www.w3.org/2005/Atom}summary').text
for word in wordList:
if summaryText.encode('utf-8').find(word) != -1:
id = entry.find('{http://www.w3.org/2005/Atom}id').text
if id not in abusedUrls:
abusedUrls[id] = word
# print possible abused urls
for url in abusedUrls.keys():
print "possible abuse of word '%s' in url: %s" % (abusedUrls[url], url)
- הסקריפט לוקח את הנתונים שלו מפה: http://he.wikipedia.org/w/index.php?title=%D7%9E%D7%99%D7%95%D7%97%D7%93:Recentchanges&feed=atom
- המילים שהוא משווה אליהן נמצאות בקובץ wordlist.txt שאמור להכיל מילים בפורמט unicode.
בינתיים הסקריפט הוא רק הוכחת היתכנות וכדי לראות האם יהיו לו משתמשים. במידה שמישהו חושב שזה יעזור, אני אבנה לו GUI. ברגע שהתוכנה תפתח, אז יהיה ניתן לעדכן את רשימת המילים מעמוד ויקי מוסכם כלשהו. והתוכנה תרוץ ברקע. כל מספר דקות היא תקרא את השינויים האחרונים שוב ותציג רק את השינויים החשודים האחרונים. כך בעצם בזמן העריכה השוטפת ניתן יהיה לקבל את השינויים החשודים כל העת.
אם מישהו מעונין לנסות את התוכנה, אני יכול לשלוח לו גירסה מקומפלת שניתן להריץ (exe file).
אשמח לקבל ביקורות בדף השיחה שלי.

