def add_category(page): if mavri.content_of_page(wiki, page): ENpage = mavri.wbgetlanglink(mavri.wikibase_item(wiki, page), 'enwiki') if ENpage: print ENpage ENcat = mavri.categories_on_enwiki(ENpage) print ENcat cat_to_add = [] for cat in ENcat: ncat = mavri.wbgetlanglink(mavri.wikibase_item('en.wikipedia', 'Category:' + cat), wikiS) if ncat != '': cat_to_add.insert(0, ncat) print cat_to_add content = mavri.content_of_page(wiki, page) appendtext = '' for cat in cat_to_add: if re.findall(r'\[\[\s?' + cat + '\s?\|?[^\[\]]*\]\]', content) == []: appendtext += '\n[[' + cat + ']]' if appendtext: content += appendtext content = re.sub(r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}\s?\n?', '', content) content = re.sub(r'\{\{\s?[Uu]ncategorized[^\}]*\}\}\s?\n?', '', content) diff = mavri.change_page(wiki, page, content, '++' + catNS, xx).json()['edit']['newrevid'] mavri.appendtext_on_page(wiki, 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz', '\n# [[Special:Diff/' + str(diff) + '|' + page + ']]', '[[Special:Diff/' + str(diff) + '|' + page + ']]', xx)
elapsed_time = str(blocked_time - not_time).replace( 'days,', 'gün').replace('day,', 'gün') by = blocked.json()['query']['blocks'][0]['by'] reason = blocked.json()['query']['blocks'][0]['reason'] summary = '[[Özel:Katkılar/' + vandal + '|' + vandal + ']] engellenmiş. [[Kullanıcı:' + by + '|' + by + ']] - ' + reason + summary_ek if blocked_now.seconds / 900 >= 1: mavri.section_clear(wiki, title, section, summary, xx) else: print( vandal + " hakkındaki bildirim gerekli süre geçmediği için atlandı." ) ignore_page = mavri.content_of_page( 'tr.wikipedia', 'Kullanıcı:KET Bot/Yoksay') ignore_list = re.split('\s*\*\s*', ignore_page) if informer not in ignore_list and informer not in localignorelist and blocked_now.seconds / 900 >= 1: message = '\n\n== Kullanıcı Engel Talebi bildirimi ==\nMerhaba. [[Özel:Katkılar/' + vandal + '|' + vandal + ']], siz bildirim yaptıktan ' + elapsed_time + ' saat sonra [[Kullanıcı mesaj:' + by + '|' + by + ']] tarafından engellendi. Engel açıklaması :' + reason.replace( '{{', "{{tl|" ) + '. Bildirimde bulunduğunuz için teşekkürler.--~~~~' summary = '[[Özel:Katkılar/' + vandal + '|' + vandal + ']], [[Kullanıcı mesaj:' + by + '|' + by + ']] tarafından engellendi.' + summary_ek mavri.send_message(wiki, 'Kullanıcı mesaj:' + informer, message, summary, xx) else: now = datetime.now() diff = now - not_time if resolved and youngestDiff.total_seconds() / 900 >= 1: summary = '[[Özel:Katkılar/' + vandal + '|' + vandal + ']] çıkartıldı. Bildirim olumsuz sonuçlandırılmış ya da engel detayları bot tarafından alınamadı.' + summary_ek
version = 'V3.0g' summary_ek = " (" + username + ", " + version + " running on " + platform.system( ) + "), ([[Kullanıcı mesaj:Evrifaessa|hata bildir]])" ignore_list = [] mpa = dict.fromkeys(range(32)) utc = pytz.timezone('UTC') ist = pytz.timezone('Europe/Istanbul') monthList = [ 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık' ] while 1: now = datetime.now(ist) content = mavri.content_of_page(wiki, title) regex = r"(?<=Silinmeye aday sayfalar/)[^}]*" if content != '{{/Başlık}}' and content != '{{/Başlık}}\n== Tartışmalar ==': pages = re.findall(regex.decode('UTF-8'), content) for page in pages: try: pageContent = mavri.content_of_page( wiki, "Vikipedi:Silinmeye_aday_sayfalar/" + page.decode('UTF-8')) timestampMonth = monthList[now.month - 1] preTimestampMonth = monthList[now.month - 2] timestampYear = now.year archivePage = "Vikipedi:Silinmeye_aday_sayfalar/Kayıt/" + str( timestampYear) + "_" + str(timestampMonth)
import re import requests from bs4 import BeautifulSoup import mavri wiki = 'tr.wikipedia' xx = mavri.login(wiki, 'Mavrikant') content = requests.get('https://tr.wikipedia.org/wiki/%C3%96zel:BozukY%C3%B6nlendirmeler').text soup = BeautifulSoup(content, 'html.parser') for line in soup.find("div", {"id": "mw-content-text"}).ol.find_all('li'): page = line.find_all('a')[0].get('title') print page pagetext = mavri.content_of_page(wiki, page) print pagetext if pagetext != '': sil = re.findall('\{\{\s?[Ss]il[^\}]*\}\}', pagetext) print sil redirect = re.findall('\[\[\s?([^\]]*)\s?\]\]', pagetext) print redirect if redirect: redirectpagetext = mavri.content_of_page(wiki, redirect[0]) print redirectpagetext if redirectpagetext == '' and not sil: HS = '{{Sil | Y1. Var olmayan sayfalara olan yönlendirmeler silinebilir. --~~~~}}\n\n' mavri.change_page('tr.wikipedia', page, HS + pagetext, '+ Hızlı sil, var olmayan sayfaya yönlendirme', xx) mavri.appendtext_on_page('tr.wikipedia', 'Kullanıcı:Mavrikant/Log/BrokenRedirects', '\n* [[' + page + ']] -> [[' + redirect[0] + ']]',
xx = mavri.login(wiki, 'Mavrikant Bot') one_day = datetime.timedelta(days=1) now = datetime.datetime.now() ilk = datetime.date(2015, 9, 1) bugun = datetime.date(now.year, now.month, now.day) yarin = bugun + one_day + one_day kaynak = ilk + randint(0, int(str(bugun - ilk).split(' days')[0])) * one_day Log_page = 'Kullanıcı:Mavrikant Bot/Log/Günün Maddesi' if (yarin.strftime("%d") == '01'): # Yeni ay temizliği mavri.page_clear(wiki, Log_page, 'Yeni ay temizliği', xx) YARIN = mavri.content_of_page(wiki, 'Şablon:GM/' + yarin.strftime("%Y-%m-%d")) if (YARIN == ''): # yarın boş Summary = 'Olumsuz' Durum = '\n* {{Çapraz}}' # Kaynak söz bul ve al KAYNAK = '' while KAYNAK == '': KAYNAK = mavri.content_of_page(wiki, 'Şablon:GM/' + kaynak.strftime("%Y-%m-%d")) kaynak += one_day # Kaynak söz ile yarını oluştur mavri.change_page(wiki, 'Şablon:GM/' + yarin.strftime("%Y-%m-%d"), KAYNAK, '[[Şablon:GM/' + kaynak.strftime("%Y-%m-%d") + ']] sayfasından kopyalandı.', xx)
'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık' ] while 1: now = datetime.now(ist) content = mavri.content_of_page(wiki, title) regex = r"(?<=Şablon tartışmaları/)[^}]*" if content != '{{/Başlık}}' and content != '{{/Başlık}}\n== Tartışmalar ==': pages = re.findall(regex.decode('UTF-8'), content) for page in pages: try: pageContent = mavri.content_of_page(wiki, title +"/" + page.decode('UTF-8')) timestampMonth = monthList[now.month-1] preTimestampMonth = monthList[now.month-2] timestampYear = now.year archivePage = title +"/Kayıt/" + \ str(timestampYear) + "_" + str(timestampMonth) preArchivePage = title +"/Kayıt/" + \ str(timestampYear) + "_" + str(preTimestampMonth)
xx = mavri.login(wiki, username) title = 'Vikipedi:Kategori_tartışmaları' version = 'V3.0g' summary_ek = " (" + username + ", " + version + " running on " + platform.system( ) + "), ([[Kullanıcı mesaj:Evrifaessa|hata bildir]])" ignore_list = [] mpa = dict.fromkeys(range(32)) monthList = [ 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık' ] while 1: now = datetime.now() content = mavri.content_of_page(wiki, title.decode('UTF-8')) regex = r'(?<=Kategori tartışmaları/)[^}]*' if content != '': pages = re.findall(regex.decode('UTF-8'), content) for page in pages: pageContent = mavri.content_of_page( wiki, "Vikipedi:Kategori tartışmaları/" + page) timestampMonth = monthList[now.month - 1] preTimestampMonth = monthList[now.month - 2] timestampYear = now.year archivePage = "Vikipedi:Kategori_tartışmaları/Kayıt/" + str( timestampYear) + "_" + str(timestampMonth) preArchivePage = "Vikipedi:Kategori_tartışmaları/Kayıt/" + str( timestampYear) + "_" + str(preTimestampMonth) contentLow = pageContent.lower()
# -*- coding: utf-8 -*- import mavri import requests from bs4 import BeautifulSoup import re xx = mavri.login('tr.wikipedia', 'Mavrikant Bot') while 1: soup = BeautifulSoup(requests.get( 'https://tr.wikipedia.org/w/index.php?title=%C3%96zel:Ba%C4%9FArama&limit=500&offset=0&target=http%3A%2F%2Fwww.mackolik.com%2FFutbolcu', cookies=xx.cookies).text, 'html.parser') for line in soup.find("ol", {"class": "special"}).find_all('li'): title = line.find_all('a')[1].get('title') print title content = mavri.content_of_page('tr.wikipedia', title) content = re.sub(r'\[\s?http://www.mackolik.com/Futbolcu/(\d*)[^\]]*\]', r'{{Mackolik.com futbolcu|\1}}', content) mavri.change_page('tr.wikipedia', title, content, 'mackolik.com linkleri şablona dönüştürüldü', xx)
def add_category(page): print page content = mavri.content_of_page(wiki, page) if content: if re.findall(r'\[\[\s?' + catNS + '[^\]]*\]\]', content) != []: content = re.sub(r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}\s?\n?', '', content) content = re.sub(r'\{\{\s?[Uu]ncategorized[^\}]*\}\}\s?\n?', '', content) return mavri.change_page(wiki, page, content, '- Kategorisiz Şablonu', xx) entity = mavri.wikibase_item(wiki, page) langs = mavri.wbgetlangsofentity(entity) langs = re.findall(r'\'([a-z]{2,3})wiki\'', str(langs)) if 'tr' in langs: langs.remove('tr') print langs if langs: lang = random.choice(langs) Swiki = lang + '.wikipedia' Slang = lang + 'wiki' print Swiki print Slang Spage = mavri.wbgetlanglink(entity, Slang) print Spage Scat = mavri.categories_on_page(Swiki, Spage) print Scat ScatNS = requests.get( 'https://' + Swiki + '.org/w/api.php?format=json&utf8=&action=query&meta=siteinfo&siprop=namespaces' ).json()['query']['namespaces']['14']['*'] cat_to_add = [] for cat in Scat: ncat = mavri.wbgetlanglink( mavri.wikibase_item(Swiki, ScatNS + ':' + cat), 'trwiki') print cat + ' -> ' + ncat if ncat != '': cat_to_add.insert(0, ncat) print cat_to_add content = mavri.content_of_page(wiki, page) appendtext = '' for cat in cat_to_add: if re.findall(r'\[\[\s?' + cat + '\s?\|?[^\[\]]*\]\]', content) == []: appendtext += '\n[[' + cat + ']]' NUM = str(len(cat_to_add)) if appendtext: content += appendtext content = re.sub(r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}\s?\n?', '', content) content = re.sub(r'\{\{\s?[Uu]ncategorized[^\}]*\}\}\s?\n?', '', content) diff = \ mavri.change_page(wiki, page, content, '+ ' + NUM + catNS + ', Kaynak=' + Slang, xx).json()['edit'][ 'newrevid'] mavri.appendtext_on_page( wiki, 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz', '\n# [[Special:Diff/' + str(diff) + '|' + page + ']] (+ ' + NUM + catNS + ', Kaynak=' + Slang + ')', '[[Special:Diff/' + str(diff) + '|' + page + ']] (+ ' + NUM + catNS + ', Kaynak=' + Slang + ')', xx) else: content = mavri.content_of_page(wiki, page) if re.findall(r'\[\[\s?' + catNS + '[^\]]*\]\]', content) == [] and re.findall( r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}', content) == []: content = re.sub(r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}\s?\n?', '', content) content = re.sub( r'\{\{\s?[Uu]ncategorized[^\}]*\}\}\s?\n?', '', content) diff = mavri.change_page( wiki, page, content + '\n\n{{Kategorisiz|{{kopyala:CURRENTMONTHNAME}} {{kopyala:CURRENTYEAR}}}} ', '+ Kategorisiz Şablonu', xx).json()['edit']['newrevid'] mavri.appendtext_on_page( wiki, 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz', '\n# [[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', '[[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', xx) else: content = mavri.content_of_page(wiki, page) if re.findall(r'\[\[\s?' + catNS + '[^\]]*\]\]', content) == [] and re.findall( r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}', content) == []: content = re.sub(r'\{\{\s?[Kk]ategorisiz[^\}]*\}\}\s?\n?', '', content) content = re.sub(r'\{\{\s?[Uu]ncategorized[^\}]*\}\}\s?\n?', '', content) diff = mavri.change_page( wiki, page, content + '\n\n{{Kategorisiz|{{kopyala:CURRENTMONTHNAME}} {{kopyala:CURRENTYEAR}}}} ', '+ Kategorisiz Şablonu', xx).json()['edit']['newrevid'] mavri.appendtext_on_page( wiki, 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz', '\n# [[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', '[[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', xx)
wiki, page, content + '\n\n{{Kategorisiz|{{kopyala:CURRENTMONTHNAME}} {{kopyala:CURRENTYEAR}}}} ', '+ Kategorisiz Şablonu', xx).json()['edit']['newrevid'] mavri.appendtext_on_page( wiki, 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz', '\n# [[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', '[[Special:Diff/' + str(diff) + '|' + page + ']] (Kategorisiz)', xx) # Section 1 cats = mavri.pages_on_category(wiki, 'Kategori:Kategorisiz') for line in cats: page = line['title'] add_category(page) # Section 2 content = requests.get( 'https://' + wiki + '.org/w/api.php?action=query&format=json&utf8&list=querypage&qppage=Uncategorizedpages&qplimit=500' ) datelog = 'Kullanıcı:Mavrikant_Bot/Log/Kategorisiz/Tarih' olddate = mavri.content_of_page(wiki, datelog) newdate = content.json()['query']['querypage']['cachedtimestamp'] if olddate != newdate: mavri.change_page(wiki, datelog, newdate, newdate, xx) for line in content.json()['query']['querypage']['results']: page = line['title'] add_category(page)
wiki = 'tr.wikiquote' xx = mavri.login(wiki, 'Mavrikant Bot') one_day = datetime.timedelta(days=1) now = datetime.datetime.now() ilk = datetime.date(2011, 4, 1) bugun = datetime.date(now.year, now.month, now.day) yarin = bugun + one_day kaynak = ilk + randint(0, int(str(bugun - ilk).split(' days')[0])) * one_day Log_page = 'Kullanıcı:Mavrikant Bot/Log/Günün Sözü' if (yarin.strftime("%d") == '01'): # Yeni ay temizliği mavri.page_clear(wiki, Log_page, 'Yeni ay temizliği', xx) YARIN = mavri.content_of_page(wiki, 'Vikisöz:Günün sözü/' + yarin.strftime("%Y/%m/%d")) if (YARIN == ''): # yarın boş Summary = 'Olumsuz' Durum = '\n* {{Çapraz}}' # Kaynak söz bul ve al KAYNAK = mavri.content_of_page(wiki, 'Vikisöz:Günün sözü/' + kaynak.strftime("%Y/%m/%d")) while KAYNAK == '': kaynak += one_day KAYNAK = mavri.content_of_page(wiki, 'Vikisöz:Günün sözü/' + kaynak.strftime("%Y/%m/%d")) # Kaynak söz ile yarını oluştur mavri.change_page(wiki, 'Vikisöz:Günün sözü/' + yarin.strftime("%Y/%m/%d"), KAYNAK, '[[Vikisöz:Günün sözü/' + kaynak.strftime("%Y/%m/%d") + ']] sayfasından kopyalandı.', xx)