def main(trello, secrets, debug):
    sites = [
        {
            'url': 'http://www.wonderballroom.com/all-shows/',
            'venue': 'Wonder Ballroom',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        content = requests.get(url)
        doc = bs(content.text, 'html.parser')
        events = doc.select('.vevent')
        event_urls = map(
            lambda x: (
                x,
                urljoin(site['url'], x.select('.url')[0].get('href'))
            ), events)

        final_events = []
        for event, url in event_urls:
            content = requests.get(url)
            doc = bs(content.text, 'html.parser')
            parsed_event = parse_event(doc, venue, debug)
            final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        [print("  {}".format(",".join(event['headliners']))) for event in final_events]
        sync_to_trello(trello, secrets, final_events)
def main(trello, secrets):
    sites = [
        {
            'url':
            'https://www.eventbrite.com/venue/api/feeds/organization/92.json',
            'venue': "Analog Theater",
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        content = requests.get(url)
        events = json.loads(content.text)

        final_events = []
        for event in events:
            parsed_event = parse_event(event)
            final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        [
            print("  {}".format(",".join(event['headliners'])))
            for event in final_events
        ]
        sync_to_trello(trello, secrets, final_events)
def main(trello, secrets):
    sites = [
        {
            'url': "http://www.crystalballroompdx.com/events/search/Any?joint_name=Crystal+Ballroom&location_id=2",
            'venue': "Crystal Ballroom",
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0',
                   'X-Requested-With': 'XMLHttpRequest',
                   'Host': 'www.crystalballroompdx.com',
                   'Referer': 'http://www.crystalballroompdx.com/1904-cbr-event-calendar',
                   'Accept': 'application/json, text/javascript, */*; q=0.01',
                   'Accept-Language': 'en-US,en;q=0.5'}
        content = requests.get(url, headers=headers)
        events = content.json()

        final_events = [parse_event(event, venue) for event in events 
                        if parse_event(event, venue) is not None]
        print("Found {} items.".format(len(final_events)))
        [print("  {}".format(",".join(event['headliners']))) for event in final_events]
        sync_to_trello(trello, secrets, final_events)
Example #4
0
def main(trello, secrets):
    ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'

    sites = [
        {
            'url': 'http://roselandpdx.com/events/?tribe_bar_rhp_venue=168',
            'venue': 'Roseland Theater',
        },
        {
            'url': 'http://hawthornetheatre.com/events/',
            'venue': 'Hawthorne Theatre',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        content = requests.get(url, headers={"User-Agent": ua})
        doc = bs(content.text, 'html.parser')
        events = doc.select('.rhino-event-header')
        event_urls = map(lambda x: (x, x.select('.url')[0].get('href')),
                         events)

        final_events = []
        for event, url in event_urls:
            content = requests.get(url, headers={"User-Agent": ua})
            doc = bs(content.text, 'html.parser')
            parsed_event = parse_event(doc, venue)
            final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        sync_to_trello(trello, secrets, final_events)
Example #5
0
def main(trello, secrets):
    sites = [
        {
            'url': 'http://www.mississippistudios.com/calendar',
            'venue': 'Mississippi Studios',
        },
        {
            'url': 'http://www.dougfirlounge.com/calendar',
            'venue': 'Doug Fir Lounge',
        },
        {
            'url': 'http://www.revolutionhall.com/calendar',
            'venue': 'Revolution Hall',
        },
        {
            'url': 'http://www.aladdin-theater.com/calendar',
            'venue': 'Aladdin Theater',
        },
        {
            'url': 'http://www.holocene.org/calendar',
            'venue': 'Holocene',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        content = requests.get(url)
        doc = bs(content.text, 'html.parser')
        days = doc.select('.vevent.data')
        final_events = []
        for day in days:
            time_str = day.find('span').get('title')
            date = arrow.get(time_str)
            events = day.find_all('div', class_='one-event')
            if len(events) == 0:
                events = day.find_all('section', class_='one-event')
            for event in events:
                parsed_event = parse_event(event, venue)
                start_time = event.find(class_='start-time')
                if start_time:
                    start_time = start_time.text.lower()
                    ampm = start_time.split(' ')[-1]
                    parts = start_time.split(' ')[0].split(':')
                    hours = int(parts[0])
                    mins = int(parts[1])
                    if ampm.startswith('p'):
                        hours += 12
                    date = date.replace(hour=hours % 24, minute=mins % 60)
                parsed_event['date'] = date
                final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        [print("  {}".format(",".join(event['headliners']))) for event in final_events]
        sync_to_trello(trello, secrets, final_events)
def main(trello, secrets):
    sites = [
        {
            'url': 'http://startheaterportland.com/',
            'venue': 'Star Theater',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        result = Render(url)

        import pdb
        pdb.set_trace()
        return

        content = requests.get(url)
        doc = bs(content.text, 'html.parser')
        days = doc.select('.tw-section')

        import pdb
        pdb.set_trace()

        final_events = []
        for day in days:
            time_str = day.find('span').get('title')
            date = arrow.get(time_str)
            events = day.find_all('div', class_='one-event')
            for event in events:
                parsed_event = parse_event(event, venue)
                start_time = event.find(class_='start-time')
                if start_time:
                    start_time = start_time.text.lower()
                    ampm = start_time.split(' ')[-1]
                    parts = start_time.split(' ')[0].split(':')
                    hours = int(parts[0])
                    mins = int(parts[1])
                    if ampm.startswith('p'):
                        hours += 12
                    date = date.replace(hour=hours % 24, minute=mins % 60)
                parsed_event['date'] = date
                final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        [
            print("  {}".format(",".join(event['headliners'])))
            for event in final_events
        ]
        sync_to_trello(trello, secrets, final_events)
Example #7
0
def main(trello, secrets):
    sites = [
        {
            'url': "http://danteslive.com/event/?twpage={}",
            'venue': "Dante's",
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        index = 0
        final_events = []
        # deal with pagination of events summary page
        while True:
            content = requests.get(url.format(index))
            doc = bs(content.text, 'html.parser')
            event_list = doc.select('.tw-plugin-upcoming-event-list')[0]
            events = event_list.find_all('td', style=False)

            # It returns a page for any index. If no events, we've reached the
            # last page
            if not events:
                break

            event_links = [event.find('a')['href'] for event in events]
            # dive into each event, as the info is much more regular in the
            # event page vs the summary page
            for link in event_links:
                event_content = requests.get(link)
                event = bs(event_content.text, 'html.parser')
                parsed_event = parse_event(event, venue)
                final_events.append(parsed_event)
            index += 1
        print("Found {} items.".format(len(final_events)))
        [
            print("  {}".format(",".join(event['headliners'])))
            for event in final_events
        ]
        sync_to_trello(trello, secrets, final_events)
def main(trello, secrets):
    sites = [
        {
            'url': 'http://www.tonicloungeportland.com/',
            'venue': 'Tonic Lounge',
        },
        {
            'url': 'http://highwatermarklounge.com/',
            'venue': 'High Water Mark Lounge',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        content = requests.get(url)
        doc = bs(content.text, 'html.parser')
        events = doc.select('#grid')[0].select('a')
        # filter out any events that have no date (not real events)
        events = [e for e in events
                  if len(e.find_all(class_='event-date')) > 0]

        final_events = []
        for event in events:
            # Get info from summary view
            date_elem = event.find(class_='event-date')
            date = get_date(date_elem)
            artists = get_artists(date_elem)

            # Get the rest from the specific event
            content = requests.get(event['href'])
            doc = bs(content.text, 'html.parser')
            parsed_event = parse_event(doc, venue, artists, date)

            # Fill in the fields we got from summary
            final_events.append(parsed_event)
        print("Found {} items.".format(len(final_events)))
        [print("  {}".format(",".join(event['headliners']))) for event in final_events]
        sync_to_trello(trello, secrets, final_events)
Example #9
0
def main(trello, secrets):

    sites = [
        {
            'url':
            'http://bossanovaballroom.com/shows/list/?tribe_event_display=list&tribe_paged={}',
            'venue': 'Bossanova Ballroom',
        },
    ]

    for site in sites:
        url = site['url']
        venue = site['venue']
        print("Scanning {}... ".format(venue), end='')
        index = 1
        final_events = []
        # deal with pagination summary page
        while True:
            content = requests.get(url.format(index),
                                   headers={"User-Agent": ua})
            doc = bs(content.text, 'html.parser')

            events = doc.find_all(class_='type-tribe_events')

            if not events:
                break

            for event in events:
                parsed_event = parse_event(event, venue)
                final_events.append(parsed_event)

            index += 1

        print("Found {} items.".format(len(final_events)))
        [
            print("  {}".format(",".join(event['headliners'])))
            for event in final_events
        ]
        sync_to_trello(trello, secrets, final_events)