def on_widget_drag_data_received(self, wid, context, x, y, selection_data, info, time): if len(selection_data.get_uris()) != 0: paths = [] for uri in selection_data.get_uris(): paths.append(gio.File(uri=uri).get_path()) self.open_paths(paths) return True
def build_no_expiry(writer): mappings = {} def copy(src, content_filter=None): content = open(src, 'rb').read() if content_filter: content = content_filter(content) name = hashlib.md5() name.update(content) name = base64.urlsafe_b64encode(name.digest())[:8].decode('ascii') basename = os.path.basename(src) basename, ext = os.path.splitext(basename) mappings['/d/' + basename] = '/%s/%s' % (NO_EXPIRY_DIR_NAME, name) if ext: name += ext mappings['/d/' + basename + ext ] = '/%s/%s' % ( NO_EXPIRY_DIR_NAME, name) writer.write_file(os.path.join(NO_EXPIRY_DIR_NAME, name), content, 'CP') # Copy static/D/* to out/D/* with names changed dirname = os.path.join(STATIC_SUBDIR, NO_EXPIRY_DIR_NAME) for name in os.listdir(dirname): if name[0] != '.': copy(os.path.join(dirname, name)) # Build files from src, put them into .tmp paths = [] for name in os.listdir(SRC_SUBDIR): if name[0] == '.': continue _, ext = os.path.splitext(name) if ext in ('.css', '.js', '.less'): if ext == '.less': name = name[:-4] + 'css' paths.append(os.path.join(writer.tmp_dir, name)) make(paths) # Copy files from .tmp to static/D with their new names. handlers = { '.css': lambda data: compilers.process_css( data, SRC_DATA_SUBDIR, mappings).replace(b'/*!', b'/*'), '.js': lambda data: b'//%s\n%s' % (REPO_URL.encode('ascii'), data) } for path in paths: copy(path, handlers.get(os.path.splitext(path)[1])) return mappings
if not (len(d['archives']) > num): if verbose_p: print("No expirations", file=sys.stderr) return a_dir = os.path.join(mlist.archive_dir(), 'attachments') while len(d['archives']) > num: date = d['archives'].pop() date_dir = os.path.join(mlist.archive_dir(), date) date_db = os.path.join(mlist.archive_dir(), 'database', date + '-') paths = [date_dir, date_dir + '.txt', date_dir + '.txt.gz'] paths.extend([date_db + x for x in ('article', 'author', 'date', 'subject', 'thread')]) if date_is_daily.match(date): paths.append(os.path.join(a_dir, date)) elif date_is_monthly.match(date): m = date_is_monthly.match(date) year = int(m.group('year')) month = month_by_name[m.group('month_name')] mdays = calendar.monthrange(year, month)[1] for mday in range(1, mdays+1): paths.append(os.path.join(a_dir, '%d%02d%02d' % (year, month, mday))) else: print('Unsupported date format: %s' % date, file=sys.stderr) for path in paths: if verbose_p: print(path) if dry_run_p: continue