예제 #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
    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= 'допълнителен филтър съдържа-се-в-заглавието; може няколко' )
    optz.text(   'save_plan',  help= 'запис на резултатния списък в ТОВА.datetime' )
    optz.text(   'save_input', help= 'запис на входящите данни в ТОВА.wd.kanal.datetime' )
    optz.bool(   'save_text',  help= 'запис на текста отделно ако не се събира в името в име.text' )
    optz.bool(   'yesterday',  help= 'днеска е вчера' )
    optz.bool(   'today_daily',     help= 'извлича датата от името на файла с дневното разписание' )
예제 #3
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys, re
import pprint
from svd_util import optz

optz.bool("ednakvo_ime_razlika_razmer")
optz.bool("samoime")
optz.append("sravni")
optz.append("prevod")
optz, args = optz.get()


def walk(a):
    ff = []
    for path, dirs, files in os.walk(a, followlinks=False):
        for f in files:
            if not f.endswith("jpg"):
                continue
            ff.append((f, path, os.stat(os.path.join(path, f)).st_size))
    ff.sort()
    return ff


ff = walk(args and args[0] or ".")

if optz.ednakvo_ime_razlika_razmer:
    u = ""
    for f, p, s in ff:
        prn = 0
        if not u:
예제 #4
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#from __future__ import print_function #,unicode_literals
'apply moves-around-dirs/deletes from template/ into .'

import os
join = os.path.join

from svd_util import optz
optz.bool( 'real', '-y', )
optz.append( 'exclude', help='dirs', default= [] )
optz.append( 'ignore' , help='file-names', default= [])
optz,args = optz.get()
none = not optz.real

template = args[0].rstrip('/')

tree = {}
paths = set()

try: os.mkdir( 'del')
except Exception as e: print( e)

optz.exclude = [ a.rstrip('/') for a in optz.exclude ]

for path, dirs, files in os.walk( template ):
    subpath = path[ len(template): ].lstrip('/').split( '/')
    p = join( *subpath[:] )
    if p in optz.exclude:
        dirs[:] = []
        continue