コード例 #1
0
ファイル: ljrss.py プロジェクト: refaim/ljrss
def main():
    global options, args

    oparser = optparse.OptionParser()
    oparser.add_option('-m', '--mode', dest='mode', default=MODE_ALL,
        help='friends selection method ({0})'.format('|'.join(MODES)))
    oparser.add_option('-u', '--lj-username', default='', metavar='USERNAME',
        help='LiveJournal username')
    oparser.add_option('', '--filename', default='lj.opml',
        help='OPML filename')
    oparser.add_option('', '--folder', default='livejournal',
        help='LJ folder name in OPML')

    options, args = oparser.parse_args()
    if not options.lj_username:
        raise LjrssException('No username specified')
    if options.mode not in MODES:
        raise LjrssException('Unknown mode "{0}"'.format(options.mode))

    options.lj_password = getpass.getpass()

    console.writeline('Getting friends list...')
    mutual, nonmutual = getfriends(options.lj_username, options.lj_password)
    console.writeline('User {0} has {1} friends (including {2} mutual)'.format(
        options.lj_username, len(mutual) + len(nonmutual), len(mutual)))

    document, folder = opml(xml.dom.minidom.Document(), options.folder)

    if options.mode == MODE_MUTUAL:
        friends = mutual
    elif options.mode == MODE_ALL:
        friends = sorted(mutual + nonmutual)
        mutual = set(mutual)

    friends = [user for user in friends
        if not (user.is_identity or user.is_deleted)]

    console.writeline('Generating feeds...')
    progressbar = console.ProgressBar(maxval=len(friends))
    for friend in friends:
        feed = ljusername2url(friend.name)
        if options.mode == MODE_ALL and friend in mutual:
            feed = freefeed(digest(feed))
        folder.appendChild(opmlentry(document, friend.name, feed))
        progressbar.update(1)
    progressbar.finish()

    console.writeline('Creating OPML file...')
    open(options.filename, 'w').write(document.toprettyxml(indent=XML_INDENT))

    return 0
コード例 #2
0
ファイル: sar.py プロジェクト: refaim/simple-archiver
def error(message):
    console.writeline(u'%s: error: %s' % (os.path.basename(__file__), message))
    return 1
コード例 #3
0
ファイル: sar.py プロジェクト: refaim/simple-archiver
    else:
        process = compressor.compress
        if not args:
            oparser.error('Wrong number of arguments')
        else:
            for arg in args:
                check_existence(arg)
                check_access(arg, os.R_OK)
        # temporary
        src = args[0]
        dst = options.archive

    with open(src, 'rb') as fsrc:
        with open(dst, 'wb') as fdst:
            freader = reader.BufferedReader(fsrc, reader.calc_buffer_size(src))
            pbar = console.ProgressBar(maxval=os.path.getsize(src))
            pbar.start()
            process(freader, fdst, pbar)
            pbar.finish()

    return 0

if __name__ == '__main__':
    try:
        sys.exit(main())
    except KeyboardInterrupt:
        console.writeline('Interrupted by user')
    except ArchiverException, ex:
        error(ex.args[0])
    sys.exit(1)
コード例 #4
0
ファイル: ljrss.py プロジェクト: refaim/ljrss
    friends = [user for user in friends
        if not (user.is_identity or user.is_deleted)]

    console.writeline('Generating feeds...')
    progressbar = console.ProgressBar(maxval=len(friends))
    for friend in friends:
        feed = ljusername2url(friend.name)
        if options.mode == MODE_ALL and friend in mutual:
            feed = freefeed(digest(feed))
        folder.appendChild(opmlentry(document, friend.name, feed))
        progressbar.update(1)
    progressbar.finish()

    console.writeline('Creating OPML file...')
    open(options.filename, 'w').write(document.toprettyxml(indent=XML_INDENT))

    return 0

if __name__ == '__main__':
    try:
        options, args = None, None
        sys.exit(main())
    except KeyboardInterrupt:
        console.writeline('Interrupted by user')
    except FreeMyFeedException, ex:
        console.writeline('FreeMyFeed error: {0}'.format(ex.args[0]))
    except LjrssException, ex:
        console.writeline(ex.args[0])
    sys.exit(1)