Ejemplo n.º 1
0
def get_bird_names():
    record = get_observations(tokens['api_key'], 'L227544', back=7)

    bird_list = []
    prev_name = ''

    for bird in record:
        name = ''

        try:
            name = bird['comName']

            try:
                name = name.split(' ')[-1]
            except:
                pass

            try:
                name = name.split('.')[-1]
            except:
                pass

            if name != prev_name and name:
                prev_name = name
                bird_list.append(name.lower())

        except:
            pass

    return bird_list
Ejemplo n.º 2
0
def update_observations():
    latest_observations = get_observations(api_key, 'GB', back=1, max_results=3) 
    if latest_observations != todays_birds.past_observations:
        todays_birds.past_observations = [bird for bird in latest_observations if bird not in todays_birds.past_observations]
    else:
        print("no new birds spotted")
        # wait an hour and hopefully some new birds will appear
        time.sleep(3600)
Ejemplo n.º 3
0
    async def get_hybrid_observations(self, ctx, region_code, days):
        """Gets recent hybrid observations."""
        ebird_key = await self.get_api_key(ctx)
        if ebird_key is None:
            return False

        # Docs at: https://github.com/ProjectBabbler/ebird-api
        return get_observations(
            ebird_key["api_key"],
            region_code,
            back=days,
            category="hybrid",
            detail="simple",
            provisional=True,
        )
Ejemplo n.º 4
0
    async def get_hybrid_observations(self, ctx, region_code, days):
        """Gets recent hybrid observations."""
        ebird_key = await self.api.get_api_key(ctx.channel)
        if ebird_key is None:
            return False

        try:
            # Docs at: https://github.com/ProjectBabbler/ebird-api
            observations = get_observations(
                ebird_key["api_key"],
                region_code,
                back=days,
                category="hybrid",
                detail="simple",
                provisional=True,
            )
        except ConnectionResetError:
            raise LookupError("Could not contact eBird")
        return observations
Ejemplo n.º 5
0
def ebirdGetAllObservations(region, time, ebirdkey, ebirdlocale):
    ebirdAllObservations = get_observations(ebirdkey, region, back=time, locale=ebirdlocale)
    return(ebirdAllObservations)
Ejemplo n.º 6
0

def update_observations():
    latest_observations = get_observations(api_key, 'GB', back=1, max_results=3) 
    if latest_observations != todays_birds.past_observations:
        todays_birds.past_observations = [bird for bird in latest_observations if bird not in todays_birds.past_observations]
    else:
        print("no new birds spotted")
        # wait an hour and hopefully some new birds will appear
        time.sleep(3600)
    
def play_birdsong(name):
    if todays_birds.observation_queue:
        time.sleep(randrange(300))
        species = todays_birds.observation_queue[0]["speciesCode"]
        todays_birds.observation_queue = list(filter(lambda i: i['speciesCode'] != species, todays_birds.observation_queue))
        get_birdsong(species)
        print(len(todays_birds.observation_queue))
    else:
        update_observations()
    scheduler.enter(1, 1, play_birdsong, (name,))

# initialise observations
observations = get_observations(api_key, 'GB', back=1, max_results=3)
todays_birds = birds(observations, observations)

# start birdwatching
scheduler = sched.scheduler(time.time, time.sleep)
scheduler.enter(1, 1, play_birdsong, (scheduler,))
scheduler.run()
Ejemplo n.º 7
0
from ebird.api import get_observations

api_token = 'vev5bd57v7ou.'

obs = get_observations(api_token, 'US', back=10)

print(obs)