def opts(): optz.help( '''%prog [опции] папка .. обхожда папките и зарежда данни от файлове именовани "opis", и изпълнява действия с тези данни''') gg = optz.grouparg( 'данни') optz.str( 'prevodi', help= 'файл-речник с преводи файл=заглавие или заглавие=файл (lat=cyr)', **gg) optz.str( 'prevodi_meta', help= 'файл-речник с преводи на понятия (lat=cyr) - хора, организации, ..', **gg) optz.str( 'filename_enc', help= 'кодировка на имената на файловете [или това от терминала]', **gg) gg = optz.grouparg( 'описи') optz.bool( 'zapis_opisi', help= '(пре)записва описите', **gg) optz.append( 'etiket', '-e',help= 'добавя етикета към _всички описи'+helplist, **gg) optz.bool( 'sort_prevodi', help= 'пренарежда преводите по азбучен ред', **gg) optz.bool( 'popravi_opisi', help= 'имената в речника с преводи имат превес над местните в описите', **gg) optz.bool( 'podravni_po_grupi', help= 'подравнява в описа всяка група за себе си; иначе подравнява всички заедно', **gg) optz.bool( 'mnogoredovi_etiketi', help= 'многоредовите се записват като 1 ключ:: с много редове, без пренасяне (иначе много ключ:реда)', **gg) optz.int( 'shirina_tekstove', default=80, help= 'ширина на пренасяне на текстове; подразбиране- %default', **gg) optz.bool( 'yaml') #ignore optz.bool( 'noyaml') #optz.bool( 'vinagi', '-f',help= 'записва независимо дали има разлики', **gg) gg = optz.grouparg( 'обхождане') optz.append( 'opisi', help= 'шаблон за името на описите ['+' '.join( OPISI)+']'+helplist, **gg) optz.bool( 'simvolni', '-L', help= 'обхожда и символни връзки', **gg) optz.append( 'bez', help= 'пропуска (папки) по дадения шаблон'+helplist, **gg) optz.append( 'samo', help= 'включва само (папки) по дадения шаблон'+helplist, **gg) optz.append( 'papka_s_opisi', help= 'счита всички файлове вътре за описи (и се прилагат горните шаблони)'+helplist, **gg) gg = optz.grouparg( 'действия с папки') optz.bool( 'preimenovai_papki', help= 'преименова+превежда папките на място', **gg) optz.str( 'prehvyrli_papki', help= 'прехвърля+превежда папки+съдържание към тук/', **gg) optz.bool( 'prehvyrli_simvolno', help= 'прехвърля като символни връзки (иначе са твърди)', **gg) optz.bool( 'davai', help= 'извършва промените', **gg) #разни optz.bool( 'stderr', help= 'грешки и съобщения към stderr') optz.count( 'podrobno', '-v', help= 'показва подробности')
t += [ k+': '+unicode(v) for k,v in [ kv for kv in s if kv[0]=='title' ] + [ kv for kv in s if kv[0]!='title' ] ] if 'itemi' in i: q = me._clone( params, is_html=is_html, is_dbg=is_dbg) q.update( item= i.key, grouped= 'kids', ) q = '&'.join( k+'='+str(v) for k,v in sorted( q.items())) t += [ '<a href="query_itemalert?' +q+ '"> inside </a>' ] t = '\n<p> '.join( t) return t from svd_util import optz, eutf eutf.fix_std_encoding() optz.int( 'port', default= 5000, help='[%default]' ) optz.str( 'host', default= 'localhost', help='[%default]' ) optz.bool( 'load', help= 'load saved data' ) optz.bool( 'gen', help= 'make fake data' ) optz.bool( 'noautogen', help= 'dont make fake data if nothing loaded' ) optz.bool( 'save', help= 'save data at end' ) optz.bool( 'notest', help= 'dont run test before serving' ) optz,args = optz.get() if optz.argus: argus() if optz.load: simu.data_load() if optz.gen or simu.data_is_empty() and not optz.noautogen: simu.fakedata() if not optz.notest: simu.test() websimu1.setup()
gg = {} optz.bool( 'simvolni', '-L', help= 'обхожда и символни връзки', **gg) optz.bool( 'davai', help= 'извършва промените', **gg) optz.bool( 'prezapis', help= 'презаписва всички файлове (иначе само ако са различни)') optz.text( 'html_enc', help= 'кодировка на html [%default]', default='utf8', **gg) #cp1251 optz.text( 'html_spisyk', help= 'прави общ списък html-страница', **gg) optz.text( 'html_novi', help= 'прави списък новости отделен (иначе част от общия списък)', **gg) optz.text( 'html_izbrani', help= 'прави списък на само хубавите - извадка от общия списък', **gg) optz.bool( 'obshto_otgore', help= 'слага Общо: отгоре (иначе отдолу)', **gg) optz.bool( 'obshto_broi_zapisi', help= 'брои файловете със записи, а не папките', **gg) optz.text( 'podredba', help= 'подрежда по изброените полета [%default]', default= 'humor,ime_sglobeno,pored', **gg) optz.bool( 'otkoga_e_mintime', help= 'слага липсващо откога=най-ранното време на папката', **gg) optz.int( 'kolko_dni_e_novo', default=35, help= 'толкова дни нещо се счита за ново [%default]', **gg) optz.int( 'kolko_sa_novi', default=0, help= 'толкова последни неща се считат за нови [%default]', **gg) options,args = optz.get() prikazki.info.options = options #for path,dirs,files in info.obikoli( args, info.e_za_propuskane ): data = [] for a in args: for f in glob( a+'/*/apapka.tmp'): data4papka = DictAttr( eval( open(f).read(), dict( datetime= datetime))) data.append( (f, data4papka) ) total = DictAttr( time= 0, size= 0,
Терраформирование == Terra Formars Хвост Феи == Gekijouban Fairy Tail S\d{1,2}E\d+ ''') if __name__ == '__main__': srcs = dict( (d.__name__, d) for d in Iztochnik.__subclasses__()) from svd_util import optz optz.text( 'ienc', help= 'входно кодиране; подразбиране - автоматично' ) optz.text( 'oenc', help= 'изходно кодиране', ) optz.int( 'stranici', help= 'колко страници; подразбиране - според източника', default=0 ) optz.list( 'iztochnik', type= 'choice', choices= sorted( srcs), help= 'източник (%s), може няколко пъти; подразбиране - всички' % ' '.join( sorted( srcs)) ) optz.text( 'skriti', help= 'файл с филтрите') optz.bool( 'podrobno', help= 'показва извлечените имена') optz.bool( 'trij', help= 'изтрива филтрираните елементи вместо само да ги скрива/свива') optz,argz = optz.get() if optz.ienc=='auto': optz.ienc=None if optz.oenc: from svd_util.eutf import fix_std_encoding, filew fix_std_encoding( ENC= optz.oenc) def fopen( fn): if optz.oenc: f = filew( optz.oenc, fn)
'--fname', fname, '--stream', x.stream, ) if __name__ == '__main__': from svd_util import optz optz.bool( 'html_strict', help= 'хтмл-парсер: стриктен' ) optz.bool( 'html_notfixed', help= 'хтмл-парсер: непоправен оригинален' ) optz.text( 'ienc', help= 'входно кодиране [автоматично]' ) optz.text( 'oenc', help= 'изходно кодиране [%default] (напр. за crontab)', ) optz.text( 'cron', help= 'прави crontab, пускайки тази команда (може с аргументи)') # optz.text( 'cron_file', help= 'записва го в този файл, иначе stdout') optz.text( 'cron_user', help= 'потребител за crontab, ако трябва' ) optz.bool( 'cron_fname_notime', help= 'без дата/час в резултатното име' ) optz.int( 'cron_earlier_minutes', help= 'пуска толкова минути по-рано') optz.int( 'cron_later_minutes', help= 'спира толкова минути по-късно') optz.int( 'cron_later_percent', help= 'спира толкова процента по-късно') optz.bool( 'nofilter', help= 'всичко, без филтри' ) optz.int( 'days', help= 'филтър толкова дни от днес [%default]', default=1 ) optz.append( 'force', help= 'включва на запис, формат: канал-чч:мм-чч:мм[-име] но може без име', ) # optz.bool( 'preferdaily', help= 'при наличие на дневна и всичко, без филтри' ) choices= list( bnr_kanali.keys()) optz.append( 'channel', choices= choices, help= 'канал за запис (разписание+източник) - от ('+ ' '.join(choices) + '); може няколко пъти; ['+kanal_default.name+']', ) optz.append( 'weekly', help= 'входно седмично разписание: URL или файл; може няколко пъти' ) optz.append( 'daily', help= 'входно дневно разписание: URL или файл; може няколко пъти' ) optz.append( 'stream', help= 'източник за запис; може няколко пъти - към всяко разписание' ) optz.append( 'filter', help= 'допълнителен филтър съдържа-се-в-заглавието; може няколко' )
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function from svd_util import optz from svd_util.struct import DictAttr optz.int( 'year', default= 2012) optz.bool( '2011', ) y2011 = DictAttr( superannuation = 0.09, bands = [ [ 6000 , .15 ], [ 37000 , .30 ], [ 80000 , .37 ], [180000 , .45 ], ], levy = dict( medical = 0.015, #medical_no_private = 0.01 # additional 1% if no-private-health care flood = [ [ 50000, .005 ], [ 100000, .01 ], ] ) ) all = { 2011: y2011, 2012: DictAttr( #2012-2013 y2011,
open(url.replace("/", "__"), "wb").write(d) # remove hanging open < d = re.sub(b"<([^>]*?<)", rb"\1", d) # if d!=d1: print( 2222222) if ienc: d = d.decode(ienc) return d from svd_util.struct import DictAttr from svd_util import optz optz.text("url", default="http://pozvanete.bg/imoti-prodava-offline&maxAds=100?page={npage}") optz.int("pages", default=11) optz.list("includes_info") optz.list("excludes_name") optz.bool("load") optz.bool("save") optz.bool("cache") optz.bool("io", help="load+save") optz.text("fload", default="danni.pozv", help="[%default]") optz.text("fsave", default="danni.pozv", help="[%default]") optz.bool("allprn", help="покажи всички въобще, а не само новите") optz.bool("curprn", help="покажи всички сега-прочетени, а не само новите") optz.text("merge", help="смеси тези данни") optz.bool("podrobno", "-v", help="видимост!") optz.bool("prezapis", help="презаписва дори и да няма нужда") optz.bool("debug", help="само гледа входа")
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os,sys,re from svd_util import optz optz.bool( 'fake', '-n', help= 'do nothing') optz.bool( 'link', help= 'link instead of move/rename') optz.bool( 'dirfiles', '-r', help= 'dir and then files inside') #? optz.bool( 'lower', '-l', help= 'just lower-case, all args are filepaths') optz.bool( 'upper', '-u', help= 'just upper-case, all args are filepaths') optz.int( 'levels', default=0, help= 'levels above leaf to rename lower/upper, default [%default]') optz.str( 'movepath', help= 'rename and move into') optz.str( 'command', help= 'exec this with 2 args instead of os.rename/os.link') optz.bool( 'insymlink', help= 'rename inside symlinks (text it points to), ignore non-symlinks') optz.bool( 'outsymlink', help= 'if --insymlink, also rename/cmd actual symlinked-path') optz.bool( 'thesymlink', help= 'if --insymlink, also rename/cmd the symlink itself') #optz.bool( 'filter', help= 'additional filter for inside symlinks; action applies if this matches inside symlink') mmm use instead find -lname ? optz.bool( 'noerror', help= 'skip errors') optz.bool( 'abssymlink', help= 'rename symlinks to point to abs-full-path, ignore non-symlinks') optz.bool( 'quiet', ) optz.help( ''' %prog [options] regexp subst filepaths subst can also use $1..$6 for groups if filepath is - , reads stdin, one filepath per line ! put -- before args if any filepath/regexp/subst starts with - %prog -u/-l [options] filepaths renu* [options] filepaths renl* [options] filepaths '''.strip() ) optz,argz = optz.get() def renul( x, up, levels =optz.levels):
#!/usr/bin/python3 import datetime, subprocess, sys, time import os.path from svd_util import optz optz.int( 'seconds', '-s', default= 0 ) optz.int( 'retry_n', default= 1 ) optz.int( 'retry_delay_seconds', default= 20 ) optz.int( 'minutes', '-m', default= 30 ) optz.int( 'seconds_extra', default= 3 ) optz.str( 'stream', default= 'http://stream.bnr.bg:8003/botev.mp3' #'http://streaming.bnr.bg/HristoBotev' ) #optz.str( 'stream', default= 'http://streaming.bnr.bg/Horizont' ) optz.str( 'fname', default= '' ) optz.multi( 'exec', default= [], help= 'in syntax of find - outfname is {} ; can be multiple times' ) optz.str( 'logfname', ) optz.bool( 'quiet_mplayer', ) from svd_util.py.wither import wither def rec( o, *, fname, secs, mins, stream ): now = datetime.datetime.now().strftime( '%Y%m%d.%H.%M.%S') if not fname: fname = o.stream.split('://')[-1].replace('/','_') ofname = '-'.join( [fname, now, ] ).replace( ' ', '_' #just in case ).replace( ':', '' #mplayer codec-options separator ).replace( ',', '' #also ) + '.wav'
#!/usr/bin/env python from __future__ import print_function import sys from svd_util import optz optz.usage( '%prog [opts] wavfile[s]' ) optz.bool( 'verbose', '-v') optz.text( 'outfile', '-o', help= 'outfile, "-" for stdout') optz.int( 'maxsize', '-l', help= 'max size in MBs, per item') options,args = optz.get() def prn( *a): print( *a, file=sys.stderr) import wave o = None oname = options.outfile if oname == '-': oname = sys.stdout sz = options.maxsize totals = 0.0 oparams = None for a in args: i = wave.open( a, 'r') params = (nchannels, sampwidth, framerate, nframes, comptype, compname) = i.getparams() iparams = params[:3]+params[4:] size = nframes/float(framerate) totals += size prn( '< %s: %.2f s' % (a, size,) , options.verbose and params or '') if oparams: assert iparams == oparams, (oparams, iparams) oparams = iparams
#!/usr/bin/env python3 import sys,socket, os.path from svd_util import optz #import multiprocessing as mp #import threading as mp import concurrent.futures def lprint( *a): print( *a, file= sys.stderr) #TODO: timed cache optz.any( 'cache', help= 'filename to store cache [%default] or url like tt://host:port', default= 'ip2hs.cache') optz.any( 'prefix', help= 'extra prefix on each line') optz.bool( 'ipprefix', help= 'put i.p.= as prefix on each line') optz.int( 'timeout', help= 'timeout in seconds [%default]', default=9) optz.bool( 'merge_caches', help= 'merge all given arguments as caches', ) optz.int( 'parallel', default=3, help= 'how many DNS queries at same time', ) optz.bool( 'verbose', help= 'debug', ) optz,args = optz.get() timeout = optz.timeout if hasattr( socket, 'setdefaulttimeout'): socket.setdefaulttimeout( timeout) def items( db): return db.items() def update( db, i): return db.update(i) hp = optz.cache.split('://') if hp[0]=='tt': from svd_util.ext import pytyrant3 as pytyrant hp = hp[-1].split(':') #'127.0.0.1', 1978)
tst( hyphtext( w, **cfg), w1 ) tst( hyphtext( t0, **cfg), t1 ) print( t1) if __name__ =='__main__': from svd_util import optz optz.help( u''' %prog [options] <infile >outfile %prog [options] думи за пренасяне ... '''.rstrip()) optz.text( 'hyphen',help= u'"тире" за отбелязване на пренасянето (меко/скрито-тире); подразбира се "%default"', default= config.hyphen ) optz.bool( 'html', help= u'ползва HTML-меко-тире %(HTML_HYPHEN)r (вместо горното)' % locals() ) optz.str( 'start', help= u'започва да променя след този текст' ) optz.bool( 'htmlpre', help= u'пропуска съдържанието на <pre>..</pre> групи' ) optz.int( 'minsize', help= u'думи под тази дължина не се пренасят; подразбира се %default', default =config.minsize ) optz.bool( 'utf', help= u'вх/изх utf8' ) optz.bool( 'iutf', help= u'вх utf8' ) optz.bool( 'iguess',help= u'вх познай кодировката' ) optz.bool( 'outf', help= u'изх utf8' ) optz.bool( 'i1251', help= u'вх cp1251' ) optz.bool( 'o1251', help= u'изх cp1251' ) optz.bool( 'cp1251',help= u'вх/изх cp1251' ) optz.bool( 'test', help= u'самопроверка' ) optz.bool( 'demo', help= u'демо' ) optz,args = optz.get() if optz.test: test() raise SystemExit,0