Re: Список непереведённых описаний пакетов
On 17-05-03 09:19, Sergey Alyoshin wrote: > On Wed, May 3, 2017 at 12:23 AM, Sergey Alyoshinwrote: > > Странно, но с | tee похоже не работает. > > Дело в буферизации stdout: > > PYTHONUNBUFFERED=1 ./ddtp-popcon.py -v | tee log Я попробовал, но что-то как-то медлено работает... Слишком много он запросов делает к ddtp2.debian.net. Сервер весьма неспешно отвечает на запросы. Кстати, popcon тянуть, думаю, лучше тоже в сжатом виде. Я набросал небольшой скрипт, которые решает эту задачу. Popcon выгружается только раз, так как он нечасто меняется, список пакетов обновляется переодически. При каждом запросе выгружается только список описаний, находящихся на согласовании. Работает весьма быстро. -- Best regards, Andrey Skvortsov signature.asc Description: PGP signature
Re: Список непереведённых описаний пакетов
В Wed, 3 May 2017 09:19:24 +0300 Sergey Alyoshinпишет: > On Wed, May 3, 2017 at 12:23 AM, Sergey Alyoshin > wrote: > > Странно, но с | tee похоже не работает. > > Дело в буферизации stdout: > > PYTHONUNBUFFERED=1 ./ddtp-popcon.py -v | tee log А может лучше на Python 3?! ;) во вложении... #!/usr/bin/python3 desc = 'Checking untranslated packages description for language' popcon_addr = 'http://popcon.debian.org/by_vote' ddtp_addr = 'https://ddtp2.debian.net' import urllib.request import re import argparse check_lang = 'ru' total_packages_num = 1000 arg = argparse.ArgumentParser(description = desc) arg.add_argument('-n', '--number', help = 'check number of package') arg.add_argument('-l', '--language', help = 'check for language') arg.add_argument('-v', '--verbose', help = 'be verbose', action = 'store_true') args = arg.parse_args() if args.language != None: check_lang = args.language if args.number != None: total_packages_num = int(args.number) print('Checking for "%s" from %s by %s ...' % (check_lang, ddtp_addr, popcon_addr), flush=True) uo = urllib.request.urlopen(popcon_addr) # Description: 237239 # This Description is active desc_re = re.compile('(Description: not_trans_re = re.compile('(.*Description is not yet translated to ' + check_lang + ') ') c = 0 while True: l = str(uo.readline(), 'utf-8') l = l.strip() # Skipping comment if l[0] == '#': continue c += 1 if c > total_packages_num: break # Package name pkg = l.split()[1] for i in urllib.request.urlopen(ddtp_addr + '/ddt.cgi?package=' + pkg): desc_id = desc_re.match(str(i, 'utf-8')) if desc_id == None: continue desc_id = desc_id.group(2) if args.verbose: print('%s of %s %s id %s' % (c, total_packages_num, pkg, desc_id), flush=True) for j in urllib.request.urlopen(ddtp_addr + '/ddt.cgi?desc_id=' + desc_id): not_trans = not_trans_re.match(str(j, 'utf-8')) if not_trans == None: continue print('%s id %s\t%s/%s' % (pkg, desc_id, ddtp_addr, not_trans.group(2)), flush=True) # Check only first (active) description id break uo.close()
Re: Список непереведённых описаний пакетов
On Wed, May 3, 2017 at 12:23 AM, Sergey Alyoshinwrote: > Странно, но с | tee похоже не работает. Дело в буферизации stdout: PYTHONUNBUFFERED=1 ./ddtp-popcon.py -v | tee log
Re: Список непереведённых описаний пакетов
Сценарий во вложении выводит непереведённые (начинается после 474) по порядку popcon: xserver-xorg-video-modesetting id 132923 https://ddtp2.debian.net/ddt.cgi?desc_id=132923=ru libpython3.4-minimal id 217824 https://ddtp2.debian.net/ddt.cgi?desc_id=217824=ru python3.4-minimal id 217852 https://ddtp2.debian.net/ddt.cgi?desc_id=217852=ru libtotem-plparser18 id 63754 https://ddtp2.debian.net/ddt.cgi?desc_id=63754=ru gir1.2-gnomedesktop-3.0 id 82307 https://ddtp2.debian.net/ddt.cgi?desc_id=82307=ru Странно, но с | tee похоже не работает. #!/usr/bin/python2 desc = 'Checking untranslated packages description for language' popcon_addr = 'http://popcon.debian.org/by_vote' ddtp_addr = 'https://ddtp2.debian.net' import urllib import re import argparse check_lang = 'ru' total_packages_num = 1000 arg = argparse.ArgumentParser(description = desc) arg.add_argument('-n', '--number', help = 'check number of package') arg.add_argument('-l', '--language', help = 'check for language') arg.add_argument('-v', '--verbose', help = 'be verbose', action = 'store_true') args = arg.parse_args() if args.language != None: check_lang = args.language if args.number != None: total_packages_num = int(args.number) print 'Checking for "' + check_lang + '" from ' + ddtp_addr + ' by ' + popcon_addr + ' ...' uo = urllib.urlopen(popcon_addr) # Description: 237239 # This Description is active desc_re = re.compile('(Description: not_trans_re = re.compile('(.*Description is not yet translated to ' + check_lang + ') ') c = 0 while True: l = uo.readline() l = l.strip() # Skipping comment if l[0] == '#': continue c += 1 if c > total_packages_num: break # Package name pkg = l.split()[1] for i in urllib.urlopen(ddtp_addr + '/ddt.cgi?package=' + pkg).readlines(): desc_id = desc_re.match(i) if desc_id == None: continue desc_id = desc_id.group(2) if args.verbose: print str(c) + ' of ' + str(total_packages_num) + ' ' + \ pkg + ' id ' + desc_id for j in urllib.urlopen(ddtp_addr + '/ddt.cgi?desc_id=' + desc_id).readlines(): not_trans = not_trans_re.match(j) if not_trans == None: continue print pkg + ' id ' + desc_id + '\t' + ddtp_addr + '/' + not_trans.group(2) # Check only first (active) description id break uo.close()
Re: Список непереведённых описаний пакетов
On 17-04-28 23:56, Lev Lamberov wrote: > Ср 26 апр 2017 @ 09:18 Andrey Skvortsov: > > > а есть ли где-нибудь лист со списком непереведённых описаний пакетов, > > отсортированный по популярности? > > Так как никто не отвечает, полагаю, что о таком списке не известно (мне > во всяком случае точно). Попробовал найти исходный код DDTSS, но как-то > тоже безуспешно. Думаю, лучше спросить в debian-i18n@l.d.o или в > #debian-i18n в OFTC. Спасбо. Я так примерно и собирался дальше поступить. Единственно, что про IRC не подумал. -- Best regards, Andrey Skvortsov signature.asc Description: PGP signature