Re: dg: простейший dos games downloader @ retro.talks HOME

Re: dg: простейший dos games downloader nnii to oldpc

В связи с постоянным пропаданием games.utf, версия с укороченным списком (без описаний). кстати, в архивах есть R/TYCOON.ZIP и T/TYCOON.ZIP :), в этой версии можно прямо задавать r/tycoon или t/tycoon

dgm.py

====
import sys, os,base64; k = sys.argv[1][0] #dgmini

MIN='''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
tcqFAufV/95rJB1VGAAA'''


if k=='u':
open('games.min.gz','wb').write(base64.b64decode(MIN))
exit()

def dl(p,f):
if not os.path.exists('dl/%s' % f):
print ('mkdir -p dl && wget -c http://gamesindos.narod.ru/%s/%s.ZIP -O dl/%s.ZIP' % (p,f,f))
if k=='i':
print ('mkdir -p dos/%s' % f)
print ('unzip -d dos/%s dl/%s.ZIP' % (f,f))

db = open('games.min').read().split()
def gv(v):
if '/' in v: return [v.upper()]
else: return [n for n in db if n.split('/')[1].lower() == v]

if k=='s':
print ('cat << EOFSEARCH')
for t in db:
x = t.split('/')
t = x[1]
if any([s.lower() in t.lower() for s in sys.argv[2:]]):
print ("%s/%s" % (x[0],x[1]))
print ('EOFSEARCH')
else:
for t in sys.argv[2:]:
if gv(t):
dl(*gv(t)[0].split('/'))
====



dgm

====
python3 dgm.py $* | sh
gunzip games.min.gz 2> /dev/null
====



использование такое же

sh dgm u (создаёт games.min)
sh dgm s keen
sh dgm i civ-rus kb2

28/11/25 15:43 UTC25IYzddALB9zRBYRing2 * REPLY