def getBestEvent(self, filename='events.json'): """Returns the event most relevant to this user's interests.""" if filename not in [f for f in os.listdir('.') if os.path.isfile(f)]: raise IOError('Error: events file ' + filename + ' not found.') data = json.load(open(filename)) best_event = Event() best_score = 0 for event in data['events']: iter_event = Event() # The declarations are split to keep the Item __init__ method for automatically calling the API to populate the model. iter_event.description = event['description'] iter_event.name = event['name'] iter_event.model = ConceptModel(model=event['model']['concepts'], maturity=1) iter_event.starttime = event['starttime'] iter_event.endtime = event['endtime'] iter_event.location = event['location'] iter_event.picture = event['picture'] iter_event.name = event['name'] iter_event.url = event['url'] score = best_event.compareTo(iter_event) if score >= best_score: # print(self.exceptions) if iter_event.name not in self.exceptions: best_event = iter_event best_score = score return best_event
def parse_event_list_from_html(html): soup = BeautifulSoup(html, HTML_PARSER) event_list_divs = soup.select("#list")[0].find_all('div', recursive=False) event_list = list() for div in event_list_divs: name_tag = div.find("span", class_="eventname") if not name_tag: continue host_tag = div.find("span", class_="event_by") desc_tag = div.find("span", {"itemprop": "description"}) start_date_tag = div.find("time", {"itemprop": "startDate"}) end_date_tag = div.find("time", {"itemprop": "endDate"}) # No idea why it's just 'name' location_tag = div.find("span", {"itemprop": "name"}) event = Event() event.name = name_tag.string event.host = host_tag.string[HOST_NAME_START:] event.desc = desc_tag.string event.start_date = datetime_string_to_obj( start_date_tag['datetime']) event.end_date = datetime_string_to_obj(end_date_tag['datetime']) event.location = location_tag.string event_list.append(event) return event_list
def make_event_from_page(link): event = Event() event.link = link try: f = urlopen(link) soup = BeautifulSoup(f) main = soup.select(".sectionMain")[0] event.name = main.select(".subHeading")[0].get_text().strip() info = main.select(".secondaryContent")[0].get_text() sstart = regex_start.search(info).group(1).strip() event.start = datetime.strptime(sstart, date_format) send = regex_end.search(info).group(1).strip() event.end = datetime.strptime(send, date_format) event.location = urllib.parse.unquote_plus(regex_loc.search(str(main)).group(1).strip()) if event.start is not None and event.start >= datetime.today() \ and event.location is not None: event.coords = geocode(event.location) except Exception: pass return event
def open_file(self, file_path): with open(file_path) as f: data = f.read() cal = Calendar.from_ical(data) for component in cal.walk(): if component.name == 'VEVENT': tz_offset = timedelta(seconds=time.timezone) name = component.get('summary') start = component.get('dtstart').dt - tz_offset end = component.get('dtend').dt - tz_offset location = component.get('location') event = Event() event.name = name event.location = location event.year = start.year event.month = start.month event.day = start.day event.start_hour = int(start.strftime('%H')) + 1 event.start_minute = int(start.strftime('%M')) event.end_hour = int(end.strftime('%H')) + 1 event.end_minute = int(end.strftime('%M')) if self.config.get('google_sync'): google = self.get_google_client() google.set_calendar_id() google.export_event(event) event.save() self.show_message('Successfully added event') self.current_view.update_gui()
def google_format_to_event(src_event): event = Event() event.name = src_event.get('summary', '') event.location = src_event.get('location', '') event.desc = src_event.get('description', '') event.start_date = dateutil.parser.parse(src_event['start']['dateTime']) event.end_date = dateutil.parser.parse(src_event['end']['dateTime']) event.host = src_event.get('extendedProperties', {}).get('shared', {}).get('host', '') return event
def script(name, description, location, url, starttime, endtime, picture): """Runtime Click script.""" event = Event(description=description, name=name) event.location = location event.url = url event.starttime = starttime if starttime != ' ': event.starttime = strptime(starttime, "%Y-%m-%d %H:%M") else: event.starttime = '' if endtime != ' ': event.endtime = strptime(endtime, "%Y-%m-%d %H:%M") else: event.endtime = '' event.saveEvent() click.echo('Event added to the database!')
def parseOneJson(self, obj): count = 0; if ((obj[self.eventResults] is not None) and (len(obj[self.eventResults])>0)): for result in obj[self.eventResults]: count += 1 sys.stdout.write("\rGetting " + str(count) + " of " + str(len(obj[self.eventResults]))) sys.stdout.flush() event = Event() event.name = self.checkIfList(self.eventName, result) event.location = self.checkIfList(self.location, result) event.description = self.checkIfList(self.description, result) event.datetime = self.checkIfList(self.eventTime, result) event.price = self.checkIfList(self.price, result) event.imagePath = self.checkIfList(self.image, result) event.dump = self.checkIfList(self.description, result) event.forceStr() self.allEvents.append(event) print "\n" return True else: return False