def setup_test_events(self): for mod in MODS: e = Event() e.title = "Test event %s" % (mod,) e.date = timezone.now() e.mod = mod e.user = User.objects.get(username='******') default_configs[mod].user = User.objects.get(username='******') default_configs[mod].save() e.config = default_configs[mod] e.save()
def ensure_next_after_previous(state, kind, organisation, title, periodicity, minimum_from_today, acceptable_weekdays=range(7), number=1, time=None, locations=[]): events = Event.objects.filter(organisation=organisation, date__gte=date.today()) # there are already events ready, don't do anything if events.exists(): print "events already exists, don't do anything" return minimum_from_today_absolute = date.today() + timedelta(**minimum_from_today) previous_event_date = Event.objects.order_by('-date') periodicity = timedelta(**periodicity) if previous_event_date.exists(): previous_event_date = previous_event_date.first().date candidate_date = previous_event_date + periodicity else: previous_event_date = None candidate_date = date.today() + timedelta(**minimum_from_today) while candidate_date < minimum_from_today_absolute: candidate_date += periodicity number_this_year = Event.objects.filter(organisation=organisation, kind=kind, date__year=date.today().year).count() + 1 for i in range(number): while candidate_date.weekday() not in acceptable_weekdays: candidate_date += timedelta(days=1) event = Event() event.state = state event.organisation = organisation event.kind = kind event.date = candidate_date event.title = Template(title).render(Context({ "event": event, "number_this_year": number_this_year, })) print "Creating a new event '%s' for %s on %s state %s" % (event.title, organisation, candidate_date.strftime("%F"), state) if time: event.time = datetime.time(**time) event.save() candidate_date += timedelta(days=1)
def setUp(self): self.user = User.objects.create_user('alice', '*****@*****.**', 'swordfish') self.now = datetime.datetime.utcnow().replace(tzinfo=utc) self.timedelta = datetime.timedelta(15) author = User.objects.get(pk=1) for count in range(1, 11): post = Event(title="Game %d Title" % count, description="foo", creator=author) if count < 6: # publish the first five posts pubdate = self.now - self.timedelta * count post.published_date = pubdate post.date = self.now + datetime.timedelta(days=1) post.tags = 'testy' post.save()
def handle(self, *args, **options): with open('E:/moviews_scrapy/events.json') as f: events = json.load(f) for event in events: event_object = Event() event_object.title = event['title'] event_object.date = event['date'] event_object.description = event['description'] event_object.category = event['category'] event_object.runtime = event['runtime'] event_object.image_url = event['images'][0]['path'] event_object.save() self.stdout.write(self.style.SUCCESS('Sucessfully Imported Events'))
def import_to_db(self): #project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #print(project_dir) sys.path.append(self.project_dir) os.environ['DJANGO_SETTINGS_MODULE'] = 'event_placement.settings.production' import django django.setup() from events.models import Event, Platform place_code = re.search(r'[^\/|\\|fb_]+(?=_events)', self.path).group() platform_name = self.PLATFORM_NAMES[place_code] print(platform_name) # pass with open(self.path, encoding="utf-8", newline='') as dictfile: ev_dict = ast.literal_eval(dictfile.read()) i = 0 for lang, value in ev_dict.items(): for ev_value in value.values(): # print(ev_value['link']) # print(ev_value['name']) # print(ev_value['date']) event = Event() event.platform = Platform.objects.get( name=platform_name ) event.name = html.unescape(ev_value['name']) event.link = ev_value['link'] event.date = ev_value['date'] event.language = lang try: event.save() i += 1 except Exception as e: pass # print(e) print("added: %s" % i) return "'%s': { 'added': '%s' }" % (platform_name, i)
def add_event(request: HttpRequest, event_form: AddEventForm,creating:bool) -> HttpResponse: if not event_form.is_valid(): messages.add_message(request, messages.ERROR, event_form.non_field_errors()) else: try: if creating: event = Event(name=event_form.cleaned_data['name'],date=event_form.cleaned_data['date'],description=event_form.cleaned_data['description']) event.save() messages.add_message(request, messages.SUCCESS, "Event Created") else: event = event_form.instance event.name = event_form.cleaned_data['name'] event.date = event_form.cleaned_data['date'] event.description = event_form.cleaned_data['description'] event.save() messages.add_message(request, messages.SUCCESS, "Event Updated") return redirect(reverse('console:edit')) except Exception: # logger.exception('Error while creating/updating a user. creating=' + str(creating) + ', req=' + "\n".join(request.readlines())) messages.add_message(request, messages.ERROR, 'Sorry, an error occurred, please alert an admin.') return None
'https://graph.facebook.com/' + events_page + '?access_token=1705064953059017|e3b4439e3577e83f7f6a095a875f3f74') events = r.json() #Vendor.objects.all().delete() #Event.objects.all().delete() #Iterate through the events objects and save it if the object isn't #already in the database. for event in events['data']: if not Event.objects.filter( event_id=event['id'].encode('ascii', 'ignore')): event_obj = Event() event_obj.name = event['name'].encode('ascii', 'ignore') event_obj.event_id = event['id'].encode('ascii', 'ignore') event_obj.date = parser.parse(event['start_time'].encode( 'ascii', 'ignore')) event_obj.description = event['description'].encode('ascii', 'ignore') event_obj.save() #Scrape through the vendor site and gather a list of vendor names vendors_page = requests.get('http://offthegridsf.com/vendors') vendors_file = html.fromstring(vendors_page.text) vendors = vendors_file.xpath('//a[@class="otg-vendor-name-link"]/text()') vendors_list = set() #Parse the vendor list for duplicate items of the form 'x (1)', 'x (20)' #by stripping the values and adding it to a set which will not allow duplicates. for vendor in vendors: if "(" in vendor: index = vendor.index('(') vendor = vendor[0:index]
#Accesses the facebook Graph API and parses the response object. events_page = 'OffTheGridSF/events' r = requests.get('https://graph.facebook.com/' + events_page + '?access_token=1705064953059017|e3b4439e3577e83f7f6a095a875f3f74') events = r.json() #Vendor.objects.all().delete() #Event.objects.all().delete() #Iterate through the events objects and save it if the object isn't #already in the database. for event in events['data']: if not Event.objects.filter(event_id=event['id'].encode('ascii','ignore')): event_obj = Event() event_obj.name = event['name'].encode('ascii','ignore') event_obj.event_id = event['id'].encode('ascii','ignore') event_obj.date = parser.parse(event['start_time'].encode('ascii','ignore')) event_obj.description = event['description'].encode('ascii','ignore') event_obj.save() #Scrape through the vendor site and gather a list of vendor names vendors_page = requests.get('http://offthegridsf.com/vendors') vendors_file = html.fromstring(vendors_page.text) vendors = vendors_file.xpath('//a[@class="otg-vendor-name-link"]/text()') vendors_list = set() #Parse the vendor list for duplicate items of the form 'x (1)', 'x (20)' #by stripping the values and adding it to a set which will not allow duplicates. for vendor in vendors: if "(" in vendor: index = vendor.index('(') vendor = vendor[0:index]