コード例 #1
0
    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= 'показва подробности')
コード例 #2
0
ファイル: websimu.py プロジェクト: svilendobrev/facer
            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()
コード例 #3
0
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,
コード例 #4
0
ファイル: hf.py プロジェクト: svilendobrev/svd_bin
Терраформирование == 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)
コード例 #5
0
                '--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= 'допълнителен филтър съдържа-се-в-заглавието; може няколко' )
コード例 #6
0
ファイル: oztax.py プロジェクト: svilendobrev/svd_bin
#!/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,
コード例 #7
0
ファイル: pozvanete.py プロジェクト: svilendobrev/svd_bin
            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="само гледа входа")
コード例 #8
0
ファイル: rename.py プロジェクト: svilendobrev/svd_bin
#!/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):
コード例 #9
0
#!/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'
コード例 #10
0
ファイル: wavcat.py プロジェクト: svilendobrev/svd_bin
#!/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
コード例 #11
0
#!/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)
コード例 #12
0
ファイル: hyphbg.py プロジェクト: svilendobrev/svd_bin
        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