Exemplo n.º 1
0
 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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
        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