Re: Список непереведённых описаний пакетов

2017-05-03 Пенетрантность Andrey Skvortsov
On 17-05-03 09:19, Sergey Alyoshin wrote:
> On Wed, May 3, 2017 at 12:23 AM, Sergey Alyoshin  wrote:
> > Странно, но с | 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: Список непереведённых описаний пакетов

2017-05-03 Пенетрантность -
В 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: Список непереведённых описаний пакетов

2017-05-03 Пенетрантность Sergey Alyoshin
On Wed, May 3, 2017 at 12:23 AM, Sergey Alyoshin  wrote:
> Странно, но с | tee похоже не работает.

Дело в буферизации stdout:

PYTHONUNBUFFERED=1  ./ddtp-popcon.py -v | tee log


Re: Список непереведённых описаний пакетов

2017-05-02 Пенетрантность Sergey Alyoshin
Сценарий во вложении выводит непереведённые (начинается после 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: Список непереведённых описаний пакетов

2017-05-02 Пенетрантность Andrey Skvortsov
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