def do_prod_masses(pif, tform): ddir = tform.tdir.replace('lib', 'pic') print pif.form.get_str('credit'), ddir, '<br>' if not os.path.exists(ddir): raise useful.SimpleError('Path does not exist.') siz = pif.form.get('tysz') cred = pif.form.get_str('credit') if cred: photog = pif.dbh.fetch_photographer(cred) if not photog: cred = '' for fn, nam in pif.form.get_list(start='nam.'): print '<hr>' print fn, ddir, siz, nam, '<br>' rf = [False, False, False, False, False] pth = tform.tdir + '/' + fn q = (0, 0,) + imglib.get_size(pth) nname = ddir + '/' + siz + '_' + nam + '.jpg' ts = (400, 0) ofi = imglib.shrinker(pth, nname, q, ts, rf) imglib.simple_save(ofi, nname) images.file_log(nname, tform.tdir) url = pif.secure_prod + nname link = pif.secure_prod title = nam if cred and not photog.flags & config.FLAG_PHOTOGRAPHER_PRIVATE: title += ' credited to ' + photog.name pif.render.message('Post to Tumblr: ', tumblr.tumblr(pif).create_photo(caption=title, source=url, link=link)) pif.render.message('Credit added: ', pif.dbh.write_photo_credit(cred, ddir, nam))
def check_base_id(pif): ids = pif.dbh.fetch_base_ids() for id in ids: rn = pif.dbh.icon_name(id['base_id.rawname']) if not rn or any([len(x) > 25 for x in rn]): print(id['base_id.id'], id['base_id.rawname'], '=>', rn) if (id['base_id.first_year'] is None or int(id['base_id.first_year']) < 1947 or int(id['base_id.first_year']) > 2015): print(id['base_id.id'], id['base_id.first_year'], 'not in bounds') if id['base_id.model_type'] not in mbdata.model_types: print(id['base_id.id'], id['base_id.model_type'], 'not in list') # small_pic = os.path.join(config.IMG_DIR_MAN, 's_' + id['base_id.id'].lower() + '.jpg') small_pic = os.path.join( *pif.render.find_image_file(pdir=config.IMG_DIR_MAN, prefix=mbdata.IMG_SIZ_SMALL, fnames=id['base_id.id'])) # if not os.path.exists(small_pic): if not small_pic: if not id['base_id.flags'] & config.FLAG_MODEL_NOT_MADE: print(id['base_id.id'], 'no pictures', small_pic) else: pic_size = imglib.get_size(small_pic) if pic_size != (200, 120): print(id['base_id.id'], 'bad size', pic_size) print(len(ids), 'entries checked')
def do_prod_masses(pif, tform): ddir = tform.tdir.replace('lib', 'pic') print pif.form.get_str('credit'), ddir, '<br>' siz = pif.form.get('tysz') for fn, nam in pif.form.get_list(start='nam.'): print '<hr>' print fn, ddir, siz, nam, '<br>' rf = [False, False, False, False, False] pth = tform.tdir + '/' + fn q = (0, 0,) + imglib.get_size(pth) nname = ddir + '/' + siz + '_' + nam + '.jpg' ts = (400, 0) ofi = imglib.shrinker(pth, nname, q, ts, rf) imglib.simple_save(ofi, nname) images.file_log(nname, tform.tdir) url = 'http://www.bamca.org/' + nname link = 'http://www.bamca.org/' useful.write_message('Post to Tumblr: ', tumblr.tumblr(pif).create_photo(caption=nam, source=url, link=link)) pif.dbh.write_photo_credit(pif.form.get_str('credit'), ddir, nam)
def check_base_id(pif): ids = pif.dbh.fetch_base_ids(); for id in ids: rn = pif.dbh.icon_name(id['base_id.rawname']) if not rn or any([len(x) > 25 for x in rn]): print id['base_id.id'], id['base_id.rawname'], '=>', rn if id['base_id.first_year'] is None or int(id['base_id.first_year']) < 1947 or int(id['base_id.first_year']) > 2015: print id['base_id.id'], id['base_id.first_year'], 'not in bounds' if id['base_id.model_type'] not in mbdata.model_types: print id['base_id.id'], id['base_id.model_type'], 'not in list' #small_pic = os.path.join(config.IMG_DIR_MAN, 's_' + id['base_id.id'].lower() + '.jpg') small_pic = os.path.join(*pif.render.find_image_file(pdir=config.IMG_DIR_MAN, prefix=mbdata.IMG_SIZ_SMALL, fnames=id['base_id.id'])) #if not os.path.exists(small_pic): if not small_pic: if not id['base_id.flags'] & config.FLAG_MODEL_NOT_MADE: print id['base_id.id'], 'no pictures', small_pic else: pic_size = imglib.get_size(small_pic) if pic_size != (200, 120): print id['base_id.id'], 'bad size', pic_size print len(ids), 'entries checked'
def do_prod_masses(pif, tform): ddir = tform.tdir.replace('lib', 'pic') print(pif.form.get_str('credit'), ddir, '<br>') if not os.path.exists(ddir): raise useful.SimpleError('Path does not exist.') siz = pif.form.get('tysz') cred = pif.form.get_str('credit') if cred: photog = pif.dbh.fetch_photographer(cred) if not photog: cred = '' for fn, nam in pif.form.get_list(start='nam.'): print('<hr>') print(fn, ddir, siz, nam, '<br>') rf = [False, False, False, False, False] pth = tform.tdir + '/' + fn q = ( 0, 0, ) + imglib.get_size(pth) nname = ddir + '/' + siz + '_' + nam + '.jpg' ts = (400, 0) ofi = imglib.shrinker(pth, nname, q, ts, rf) imglib.simple_save(ofi, nname) images.file_log(nname, tform.tdir) url = pif.secure_prod + nname[1:] link = pif.secure_prod title = nam if cred and not photog.flags & config.FLAG_PHOTOGRAPHER_PRIVATE: title += ' credited to ' + photog.name pif.render.message( 'Post to Tumblr: ', tumblr.Tumblr(pif).create_photo(caption=title, source=url, link=link)) pif.render.message('Credit added: ', pif.dbh.write_photo_credit(cred, ddir, nam))
def show_left_bar_content(pif, model, ref, pic, pdir, lm_pic_id, raw_variations): mod_id = model['id'] links = [] if pif.is_allowed('a'): # pragma: no cover links.append('<a href="vars.cgi?recalc=1&mod=%s">Recalculate</a>' % mod_id) links.append('<a href="%s">Casting</a>' % pif.dbh.get_editor_link('casting', {'id': mod_id})) links.append( '<a href="%s">AttrPics</a>' % pif.dbh.get_editor_link('attribute_picture', {'mod_id': mod_id})) links.append('<a href="mass.cgi?type=related&mod_id=%s">Relateds</a>' % mod_id) if ref.startswith('year.'): links.append('<a href="%s">Lineup Model</a>' % pif.dbh.get_editor_link('lineup_model', { 'year': ref[5:], 'mod_id': mod_id })) elif ref.startswith('matrix.'): links.append('<a href="%s">Matrix Model</a>' % pif.dbh.get_editor_link('matrix_model', { 'page_id': ref, 'mod_id': id })) elif ref.startswith('packs.'): links.append( '<a href="%s">Pack Model</a>' % pif.dbh.get_editor_link('pack_model', { 'pack_id': pif.form.get_str('sub'), 'mod_id': mod_id })) links.append('<a href="vars.cgi?list=1&mod=%s">Variations</a>' % mod_id) links.append('<a href="vars.cgi?vdet=1&mod=%s">Details</a>' % mod_id) links.append('<a href="vsearch.cgi?ask=1&id=%s">Search</a>' % mod_id) links.append('<a href="pics.cgi?m=%s">Pictures</a>' % mod_id.lower()) links.append('<a href="edlinks.cgi?page=single.%s">Links</a>' % mod_id) if os.path.exists( useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower())): if pif.is_allowed('v'): # pragma: no cover links.append('<a href="traverse.cgi?d=%s">Library</a>' % useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower())) if pif.is_allowed('a'): # pragma: no cover links.append('<a href="upload.cgi?d=%s&m=%s">Library Upload</a>' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower()), mod_id.replace('/', '_').lower())) ostr = '' if pif.is_allowed('a'): # pragma: no cover #<i class="fas fa-star white"></i> #<i class="fas fa-star-half-o white"></i> #<i class="fas fa-star-o white"></i> prodstar = 'fa-star-o black' if pic: links.append('') prodstar = 'fa-star white' prod = pic prod += ' <a href="upload.cgi?d=%s&n=%s&c=%s&link=%s"><i class="fas fa-upload"></i></a>' % ( pdir.replace('pic', 'lib'), pic, pic, urllib.quote(pif.request_uri)) prodpic = pif.render.find_image_path(pic, pdir=pdir) if lm_pic_id: prod += ' <a href="%s&useprev=2"><i class="fas fa-step-backward red"></i></a>' % pif.request_uri elif prodpic: x, y = imglib.get_size(prodpic) if x > 400: prodstar = 'fa-star yellow' elif x == 400: prodstar = 'fa-star black' else: prodstar = 'fa-star red' prod += ' <a href="imawidget.cgi?act=1&d=./%s&f=%s&delete=1"><i class="fas fa-remove"></i></a>' % ( pdir, prodpic[prodpic.rfind('/') + 1:]) else: prod += ' <a href="%s&useprev=1"><i class="fas fa-step-backward"></i></a>' % pif.request_uri links.append(prod) links.append('') vfl = pif.dbh.fetch_variation_files(mod_id) for vf in vfl if vfl else [{ 'mod_id': mod_id, 'imported_from': 'importer' }]: links.append( '<a href="vedit.cgi?d=src/mbxf&m=%(mod_id)s&f=%(imported_from)s">%(imported_from)s</a>' % vf) var_pics, var_texts = show_list_var_pics(pif, mod_id) ostr += '<br>\n'.join(var_pics) + '<p>\n' fmt_bad, _, _ = pif.dbh.check_description_formatting(mod_id) ostr += '<i class="fas fa-times red"></i>' if fmt_bad else '<i class="fas fa-check green"></i>' ostr += '<br>' for i_vt in range(1, len(var_texts)): vt = var_texts[i_vt] ostr += '<i title="%s" class="fas fa-star%s"></i>\n' % ( mbdata.model_texts[i_vt - 1], '-o gray' if not model['format_' + mbdata.desc_attributes[i_vt - 1]] else (' green' if vt == var_texts[0] else (' red' if not vt else ' yellow'))) ostr += '<p>\n' ostr += '<i class="fas %s"></i><p>\n' % prodstar var_ids = [x['v.var'] for x in raw_variations] var_ids.sort() for var in var_ids: ostr += '<a href="vars.cgi?mod=%s&var=%s&edit=1">%s</a>\n' % ( mod_id, var, var) if var: for sz in mbdata.image_size_types: if os.path.exists( useful.relpath( '.', config.IMG_DIR_VAR, sz + '_' + mod_id + '-' + var + '.jpg').lower()): ostr += sz.upper() + ' ' ostr += '<a href="vars.cgi?mod=%s&var=%s"><i class="fas fa-edit"></i></a>\n' % ( mod_id, var) ostr += pif.render.format_link( 'upload.cgi?d=%s&m=%s&v=%s&l=1&c=%s+variation+%s' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.lower()), mod_id, var, mod_id, var), '<i class="fas fa-upload"></i>') + '\n' ostr += pif.render.format_link( 'traverse.cgi?g=1&d=%s&man=%s&var=%s' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.lower()), mod_id, var), '<i class="fas fa-bars"></i>') + '\n' ostr += '<br>\n' ostr = '<br>\n'.join(links) + '<p>\n' + ostr return ostr
def show_left_bar_content(pif, model, ref, pic, pdir, lm_pic_id, raw_variations): mod_id = model['id'] links = [] if pif.is_allowed('a'): # pragma: no cover links.append('<a href="vars.cgi?recalc=1&mod=%s">Recalculate</a>' % mod_id) links.append('<a href="%s">Casting</a>' % pif.dbh.get_editor_link('casting', {'id': mod_id})) links.append('<a href="%s">AttrPics</a>' % pif.dbh.get_editor_link('attribute_picture', {'mod_id': mod_id})) links.append('<a href="mass.cgi?type=related&mod_id=%s">Relateds</a>' % mod_id) links.append('<a href="mass.cgi?type=alias&mod_id=%s">Aliases</a>' % mod_id) links.append('<a href="vars.cgi?edt=1&mod=%s">Variations</a>' % mod_id) links.append('<a href="vars.cgi?adl=1&mod=%s">Attr Edit</a>' % mod_id) links.append('<a href="vars.cgi?vdt=1&mod=%s">Details</a>' % mod_id) links.append('<a href="vsearch.cgi?ask=1&id=%s">Search</a>' % mod_id) links.append('<a href="pics.cgi?m=%s">Pics</a> <a href="vars.cgi?lrg=1&mod=%s&pic1=1&hc=1&picown=1&ci=1&c1=1&c2=1">Creds</a>' % (mod_id.lower(), mod_id)) links.append('<a href="edlinks.cgi?page_id=single.%s">Links</a>' % mod_id) if os.path.exists(useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower())): if pif.is_allowed('v'): # pragma: no cover links.append('<a href="traverse.cgi?d=%s">Library</a>' % useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower())) if pif.is_allowed('a'): # pragma: no cover links.append('<a href="upload.cgi?d=%s&m=%s">Library Upload</a>' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower()), mod_id.replace('/', '_').lower())) links.append('<a href="/cgi-bin/traverse.cgi?p=%s&d=%s&mr=1<y=mss&til=1&credit=DT" target="_blank">Tilley List</a>' % (imglib.get_tilley_file().get(mod_id.lower(), [''])[0] + '*', useful.relpath('.', config.LIB_MAN_DIR, mod_id.replace('/', '_').lower()))) ref_link = ostr = '' if pif.is_allowed('a'): # pragma: no cover prodstar = 'far fa-star black' if ref.startswith('year.'): ref_link = pif.dbh.get_editor_link('lineup_model', {'year': ref[5:], 'mod_id': mod_id}) elif ref.startswith('matrix.'): ref_link = pif.dbh.get_editor_link('matrix_model', {'page_id': ref, 'mod_id': id}) elif ref.startswith('packs.'): ref_link = pif.dbh.get_editor_link('pack_model', {'pack_id': pif.form.get_str('sec'), 'mod_id': mod_id}) if pic: links.append('') prodstar = 'fas fa-star white' prod = pic prod += ' <a href="upload.cgi?d=%s&n=%s&c=%s&link=%s"><i class="fas fa-upload"></i></a>' % (pdir.replace('pic', 'lib'), pic, pic, useful.url_quote(pif.request_uri)) prodpic = pif.render.find_image_path(pic, pdir=pdir, largest="m") if lm_pic_id: prod = '<i class="%s"></i>\n' % prodstar + prod prod += ' <a href="%s&useprev=2"><i class="fas fa-step-backward red"></i></a>' % pif.request_uri elif prodpic: x, y = imglib.get_size(prodpic) if x > 400: prodstar = 'fas fa-star yellow' elif x == 400: prodstar = 'fas fa-star black' else: prodstar = 'fas fa-star red' prod = '<i class="%s"></i>\n' % prodstar + prod prod += ' <a href="imawidget.cgi?act=1&d=./%s&f=%s&trash=1"><i class="fas fa-times"></i></a>' % (pdir, prodpic[prodpic.rfind('/') + 1:]) if ref_link: prod += pif.render.format_link(ref_link, ' <i class="fas fa-edit"></i>') else: prod = '<i class="%s"></i>\n' % prodstar + prod if ref_link: prod += pif.render.format_link(ref_link, ' <i class="fas fa-edit"></i>') prod += ' <a href="%s&useprev=1"><i class="fas fa-step-backward"></i></a>' % pif.request_uri links.append(prod) links.append('') vfl = pif.dbh.fetch_variation_files(mod_id) for vf in vfl if vfl else [{'mod_id': mod_id, 'imported_from': 'importer'}]: links.append('<a href="vedit.cgi?d=src/mbxf&m=%(mod_id)s&f=%(imported_from)s">%(imported_from)s</a>' % vf) var_pics, var_texts = show_list_var_pics(pif, mod_id) ostr += '<br>\n'.join(var_pics) + '<p>\n' fmt_bad, _, _ = pif.dbh.check_description_formatting(mod_id) ostr += '<i class="fas fa-times red"></i>' if fmt_bad else '<i class="fas fa-check green"></i>' ostr += '<br>' for i_vt in range(1, len(var_texts)): vt = var_texts[i_vt] ostr += '<i title="%s" class="%s"></i>\n' % (mbdata.model_texts[i_vt - 1], 'far fa-star gray' if not model['format_' + mbdata.desc_attributes[i_vt - 1]] else ('fas fa-star green' if vt == var_texts[0] else ('fas fa-star red' if not vt else 'fas fa-star yellow'))) ostr += '<p>\n' var_ids = [x['v.var'] for x in raw_variations] var_ids.sort() for var in var_ids: ostr += '<a href="vars.cgi?mod=%s&var=%s&edt=1">%s</a>\n' % (mod_id, var, var) if var: for sz in mbdata.image_size_types: if os.path.exists(useful.relpath('.', config.IMG_DIR_VAR, sz + '_' + mod_id + '-' + var + '.jpg').lower()): ostr += sz.upper() + ' ' ostr += '<a href="vars.cgi?mod=%s&var=%s&edt=1"><i class="fas fa-edit"></i></a>\n' % (mod_id, var) ostr += pif.render.format_link('upload.cgi?d=%s&m=%s&v=%s&l=1&c=%s+variation+%s' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.lower()), mod_id, var, mod_id, var), '<i class="fas fa-upload"></i>') + '\n' ostr += pif.render.format_link('traverse.cgi?g=1&d=%s&man=%s&var=%s' % (useful.relpath('.', config.LIB_MAN_DIR, mod_id.lower()), mod_id, var), '<i class="fas fa-bars"></i>') + '\n' ostr += '<br>\n' for attr in pif.dbh.fetch_attributes(mod_id): ostr += attr['attribute.attribute_name'] + '<br>\n' ostr = '<br>\n'.join(links) + '<p>\n' + ostr return ostr