Michal Čihař - Archive for Dec. 9, 2005

Škatulkování blogů

Opět se tu objevil návrh na škatulkování blogů. Původně jsem chtěl odepsat do diskuze, ale nakonec to bude touto formou.

Něco podobného tu bylo již několikrát a nikdy se to moc neujalo. Proč? Blog je takové médium, ve kterém si každý píše co chce a podle toho to taky vypadá. Patří " Tvorba rmp balíčků, prodloužení Kylixu 3 " do navrhované kategorie IT nebo ne? Jestli to bude rozhodovat autor, tak určitě ano, jestli nějaký správce, tak to spíš zařadí do odpadu.

Prostě mám pocit, že to bude stejně relevatní jako hodnocení, které využije naprosté minimum čtenářů (třeba " Přiznejte se - kdo volil Paroubka nebo Ratha? " četlo přes tisíc lidí a hlasovalo jenom šest...).

Prostě buďto nechte blogy žít vlastním životem nebo je ignorujte nebo čtěte jen od těch lidí, co se vám líbí. Obecné řešení vyhovující všem nemůže existovat, protože každý bude mít jiný názor.

Mažu všechno staré

A máme tu další z řady jednoduchých skriptíků pro práci s IMAPem. Tentokráte smažeme všechny staré maily, aby složky s mailing listy příliš nebobtnaly.

 #!/usr/bin/python
import sys
import imaplib
import time
import string

def purge_step(age, flag):
    l = m.search(None, flag, 'UNFLAGGED', 'UNDELETED', 'BEFORE', time.strftime('%d-%b-%Y', age))
    for st in l[1]:
        if st:
            sts = st.split()
            while sts:
                m.store(string.join(sts[:1000], ','), '+FLAGS.SILENT', '\deleted')
                del sts[:1000]


if len(sys.argv) != 4:
    print 'Usage: imap_purge folder age unreadage'
    sys.exit(4)

folder = sys.argv[1]

ts_read = time.localtime(time.time() - (int(sys.argv[2]) * 86400))
ts_unread = time.localtime(time.time() - (int(sys.argv[3]) * 86400))

m = imaplib.IMAP4('SERVER')
res = m.login('USERNAME', 'PASSWORD')
if res[0] != 'OK':
    sys.stderr.write("login: %s\n" % str(res))
    sys.exit(1)

res = m.select(folder)
if res[0] != 'OK':
    sys.stderr.write("select: %s\n" % str(res))
    sys.exit(2)

purge_step(ts_read, 'SEEN')
purge_step(ts_unread, 'UNSEEN')

m.expunge()