def scraper_delete_scraper(request, wiki_type, short_name): from frontend.utilities.messages import send_message scraper, resp = getscraperorresponse(request, wiki_type, short_name, None, "delete_scraper") if resp: return resp scraper.previous_privacy = scraper.privacy_status scraper.privacy_status = "deleted" scraper.save() send_message( request, { "message": "Your %s has been deleted" % wiki_type, "level": "warning", "actions": [( "Undo?", reverse('scraper_undelete_scraper', args=[wiki_type, short_name]), False, )] }) return HttpResponseRedirect( reverse('profile', kwargs=dict(username=request.user.username)))
def scraper_delete_data(request, short_name): from frontend.utilities.messages import send_message scraper, resp = getscraperorresponse(request, "scraper", short_name, None, "delete_data") if resp: return resp try: dataproxy = DataStore(scraper.short_name) dataproxy.request({"maincommand": "clear_datastore"}) scraper.scraper.update_meta() scraper.save() dataproxy.close() except: pass send_message( request, { "message": "Your data has been deleted", "level": "warning", "actions": [( "Undo?", reverse('scraper_undo_delete_data', args=[short_name]), False, )] }) return HttpResponseRedirect( reverse('code_overview', args=[scraper.wiki_type, short_name]))
def scraper_delete_data(request, short_name): from frontend.utilities.messages import send_message scraper,resp = getscraperorresponse(request, "scraper", short_name, None, "delete_data") if resp: return resp try: dataproxy = DataStore(scraper.short_name) dataproxy.request({"maincommand":"clear_datastore"}) scraper.scraper.update_meta() scraper.save() dataproxy.close() except: pass send_message( request, { "message": "Your data has been deleted", "level" : "warning", "actions": [ ("Undo?", reverse('scraper_undo_delete_data', args=[short_name]), False,) ] } ) return HttpResponseRedirect(reverse('code_overview', args=[scraper.wiki_type, short_name]))
def scraper_undelete_scraper(request, wiki_type, short_name): from frontend.utilities.messages import send_message from codewiki.models import Code scraper = get_object_or_404(Code, short_name=short_name) if scraper.privacy_status == "deleted" and scraper.owner() == request.user: scraper.privacy_status = scraper.previous_privacy scraper.save() send_message( request, { "message": "Your %s has been recovered" % wiki_type, "level" : "info", } ) return HttpResponseRedirect(reverse('code_overview', args=[wiki_type, short_name]))
def scraper_undelete_scraper(request, wiki_type, short_name): from frontend.utilities.messages import send_message from codewiki.models import Code scraper = get_object_or_404(Code, short_name=short_name) if scraper.privacy_status == "deleted" and scraper.owner() == request.user: scraper.privacy_status = scraper.vault and 'private' or scraper.previous_privacy scraper.save() send_message(request, { "message": "Your %s has been recovered" % wiki_type, "level": "info", }) return HttpResponseRedirect( reverse('code_overview', args=[wiki_type, short_name]))
def scraper_delete_scraper(request, wiki_type, short_name): from frontend.utilities.messages import send_message scraper,resp = getscraperorresponse(request, wiki_type, short_name, None, "delete_scraper") if resp: return resp scraper.previous_privacy = scraper.privacy_status scraper.privacy_status = "deleted" scraper.save() send_message( request, { "message": "Your %s has been deleted" % wiki_type, "level" : "warning", "actions": [ ("Undo?", reverse('scraper_undelete_scraper', args=[wiki_type, short_name]), False,) ] } ) return HttpResponseRedirect(reverse('dashboard'))
def code_overview(request, wiki_type, short_name): from codewiki.models import ScraperRunEvent, DomainScrape scraper,resp = getscraperorresponse(request, wiki_type, short_name, "code_overview", "overview") if resp: return resp alert_test = request.GET.get('alert', '') if alert_test: from frontend.utilities.messages import send_message if alert_test == '1': actions = [ ("Secondary", reverse('code_overview', args=[wiki_type, short_name]), True,), ("Primary", reverse('code_overview', args=[wiki_type, short_name]), False,), ] level = 'info' elif alert_test == '2': actions = [ ("Secondary", reverse('code_overview', args=[wiki_type, short_name]), True,), ("Primary", reverse('code_overview', args=[wiki_type, short_name]), False,), ] level = 'warning' elif alert_test == '3': actions = [ ("Secondary", reverse('code_overview', args=[wiki_type, short_name]), True,), ("Primary", reverse('code_overview', args=[wiki_type, short_name]), False,), ] level = 'error' else: actions = [] send_message( request,{ "message": "This is an example " + level + " alert", "level" : level, "actions": actions, }) context = {'selected_tab':'overview', 'scraper':scraper } context["scraper_tags"] = scraper.gettags() context["userrolemap"] = scraper.userrolemap() context["schedule_options"] = list(models.SCHEDULE_OPTIONS) # if {% if a in b %} worked we wouldn't need these two context["user_owns_it"] = (request.user in context["userrolemap"]["owner"]) if request.user.is_anonymous(): context['user_edits_it'] = False elif scraper.privacy_status == 'public' and request.user.is_authenticated(): context["user_edits_it"] = True; else: context["user_edits_it"] = (request.user in context["userrolemap"]["owner"]) or (request.user in context["userrolemap"]["editor"]) context['user_can_set_hourly'] = False context['self_service_vaults'] = False if request.user.is_authenticated(): context['user_plan'] = request.user.get_profile().plan if context['user_plan'] == 'business' or context['user_plan'] == 'corporate': context['user_can_set_hourly'] = True if request.user.get_profile().has_feature('Self Service Vaults'): context['self_service_vaults'] = True else: del(context["schedule_options"][4]) else: context['user_plan'] = None del(context["schedule_options"][4]) context["PRIVACY_STATUSES"] = PRIVACY_STATUSES_UI[0:2] if request.user.is_staff: context["PRIVACY_STATUSES"] = PRIVACY_STATUSES_UI[0:3] context["privacy_status_name"] = dict(PRIVACY_STATUSES_UI).get(scraper.privacy_status) context["api_base"] = "%s/api/1.0/" % settings.API_URL # view tpe if wiki_type == 'view': context["related_scrapers"] = scraper.relations.filter(wiki_type='scraper') if scraper.language == 'html': code = scraper.saved_code() if re.match('<div\s+class="inline">', code): context["htmlcode"] = code return render_to_response('codewiki/view_overview.html', context, context_instance=RequestContext(request)) # # (else) scraper type section # assert wiki_type == 'scraper' context["related_views"] = models.View.objects.filter(relations=scraper).exclude(privacy_status="deleted") try: beta_user = request.user.get_profile().beta_user except frontend.models.UserProfile.DoesNotExist: beta_user = False except AttributeError: # happens with AnonymousUser which has no get_profile function! beta_user = False context['forked_to'] = models.Scraper.objects.filter(forked_from=scraper).exclude(privacy_status='deleted').exclude(privacy_status='private').order_by('-created_at')[:5] context['forked_to_total'] = models.Scraper.objects.filter(forked_from=scraper).exclude(privacy_status='deleted').exclude(privacy_status='private').count() context['forked_to_remainder'] = int(models.Scraper.objects.filter(forked_from=scraper).exclude(privacy_status='deleted').exclude(privacy_status='private').count()) - 5; #if dataproxy: # dataproxy.close() try: event = ScraperRunEvent.objects.filter(scraper=scraper).order_by('-last_run')[0] context['domain_scrapes'] = DomainScrape.objects.filter(scraper_run_event=event).all() except: context['domain_scrapes'] = [] context["itemlog"] = populate_itemlog(scraper, run_count=10) context['url_screenshot'] = None try: s = scraper.scraperrunevent_set.filter(first_url_scraped__isnull=False).order_by('run_started')[0] context['url_screenshot'] = s.first_url_scraped except: pass return render_to_response('codewiki/scraper_overview.html', context, context_instance=RequestContext(request))