Khác biệt giữa bản sửa đổi của “Thành viên:AlphamaBot/Code đa chức năng (pywikibot)”
Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi |
Không có tóm lược sửa đổi |
||
Dòng 160:
return False
def welcome(site, welcome_template, total = 50):
"""
chào mừng thành viên
site: đối tượng dự án - object (site = pywikibot.Site('vi', 'wikipedia'))
total: số lượng thành viên mới - int
return: chào mừng thành viên có trên 1 sửa đổi
"""
# lấy danh sách nhật trình các tài khoản đã đăng ký mới
log_newusers = site.logevents('newusers', total = total)
# dựa theo nhật trình lấy danh sách tên thành viên mới
users = (pywikibot.User(site, u.user()) for u in log_newusers)
# kiểm tra bản mẫu có hợp lệ
templates = ['{{hoan nghênh2}}', '{{hoan nghênh3}}', '{{hoan nghênh4}}', '{{hoan nghênh 5}}', '{{hoan nghênh6}}',
'{{hoan nghênh7}}', '{{hoan nghênh8}}', '{{hoan nghênh12}}', '{{hoan nghênh của Băng Tỏa}}',
'{{chào mừng thành viên mới}}']
welcome_template = welcome_template.lower()
if (
print('
return
# bắt đầu duyệt danh sách thành viên mới
for u in users:
# lấy tên thành viên
username = str(u._link)
username = username.strip('[[').strip(']]')
username = username.replace('Thành viên:', '')
# kiểm tra hợp lệ
if u.isBlocked(): continue # không chào mừng nếu thành viên bị cấm
if 'bot' in u.groups() or 'bot' in username.lower(): continue # không chào mừng nếu thành viên là bot
if u.editCount() < 1: continue # không chào mừng nếu thành viên không có sửa đổi nào
# không chào mừng nếu thành viên có tên vi phạm,...
print('Đang chào mừng thành viên: ', username)
user_talk = 'Thảo luận Thành viên:' + username
page = pywikibot.Page(site, user_talk)
# xử lý trang
if (len(page.text) == 0):
page.text += welcome_template + '\n~~~~'
page.save(summary = '[[:mw:Manual:Pywikibot|Pywikibot]]: Chào mừng thành viên mới (bản mẫu ' + welcome_template + ').')
print('--- Đã thêm bản mẫu.')
else:
print('--- Trang thảo luận đã tồn tại.')
print('....................................')
def multifunction(site):
"""
hàm đa năng
site: đối tượng dự án (object)
"""
# các hàm tạo danh sách
# total: tổng số trang cần tìm
Hàng 195 ⟶ 235:
while True:
#pages = site.randompages(total=500, namespaces=[0], redirects=True) # lấy danh sách bài ngẫu nhiên
step = 5
Hàng 235 ⟶ 275:
print('....................................')
#.......................................................................................
if __name__ == '__main__':
site = pywikibot.Site('vi', 'wikipedia') # khai báo ngôn ngữ + dự án
# ghi đè tham số trong config.py
bot_name = 'AlphamaBot'
usernames['wikipedia']['vi'] = bot_name # tên bot
console_encoding = 'utf-8'
use_api_login = True
put_throttle = 0 # bỏ thời gian chờ giữa các action
maxthrottle = 0 # bỏ thời gian chờ tối đa giữa các action
noisysleep = 30
# Tạo thao tác lưu ảo để đăng nhập và kiểm tra chức năng bot
bot_status_page = 'Thành viên:' + bot_name + '/Status'
page = pywikibot.Page(site, bot_status_page)
page.save('')
if (check_status(site, bot_name) == False):
print('Bot không được kích hoạt! Xem ở [[' + bot_status_page + ']].')
sys.exit() # hàm thoát trong main
# bỏ # để chạy hàm chào mừng
welcome(site, '{{hoan nghênh12}}', total = 500)
# bỏ # để chạy hàm đa năng
# multifunction(site)
</syntaxhighlight>
|