def scan()

in src/plugins/scanners/twitter.py [0:0]


def scan(KibbleBit, source):
    source['steps']['twitter'] = {
        'time': time.time(),
        'status': 'Scanning Twitter activity and status',
        'running': True,
        'good': True
    }
    KibbleBit.updateSource(source)
    t = None
    if 'creds' in source and source['creds']:
        t = twitter.Api(
                access_token_key = source['creds'].get('token', None),
                access_token_secret = source['creds'].get('token_secret', None),
                consumer_key = source['creds'].get('consumer_key', None),
                consumer_secret = source['creds'].get('consumer_secret', None),
            )
        KibbleBit.pprint("Verrifying twitter credentials...")
        try:
            t.VerifyCredentials()
        except:
            source['steps']['twitter'] = {
                'time': time.time(),
                'status': 'Could not verify twitter credentials',
                'running': False,
                'good': False
            }
            KibbleBit.updateSource(source)
            KibbleBit.pprint("Could not verify twitter creds, aborting!")
            return
    # Start by getting and saving followers
    try:
        getFollowers(KibbleBit, source, t)
    except Exception as err:
        source['steps']['twitter'] = {
            'time': time.time(),
            'status': 'Could not scan Twitter: %s' % err,
            'running': False,
            'good': False
        }
        KibbleBit.updateSource(source)
        KibbleBit.pprint("Twitter scan failed: %s" % err)
    
    # All done, report that!
    source['steps']['twitter'] = {
        'time': time.time(),
        'status': 'Twitter successfully scanned at ' + time.strftime("%Y/%m/%d %H:%M:%S", time.gmtime(time.time())),
        'running': False,
        'good': True
    }
    KibbleBit.updateSource(source)