コード例 #1
0
def new_site(req, podcast_slug):
    pod = get_podcast(req, podcast_slug)

    if not payment_plans.minimum(
            UserSettings.get_from_user(pod.owner).plan,
            payment_plans.FEATURE_MIN_SITES):
        raise Http404()

    try:
        site = Site(
            podcast=pod,
            theme=req.POST.get('theme'),
            cover_image_url=signer.unsign(req.POST.get('cover-url'))
            if req.POST.get('cover-url') else None,
            logo_url=signer.unsign(req.POST.get('logo-url'))
            if req.POST.get('logo-url') else None,
            analytics_id=req.POST.get('analytics_id'),
            itunes_url=req.POST.get('itunes_url'),
            stitcher_url=req.POST.get('stitcher_url'),
            show_itunes_banner=req.POST.get('show_itunes_banner') == 'true')
        site.save()
    except Exception as e:
        return redirect(
            reverse('podcast_dashboard', podcast_slug=podcast_slug) +
            '?error=true#site')
    else:
        return redirect(
            reverse('podcast_dashboard', podcast_slug=podcast_slug) + '#site')
コード例 #2
0
    def handle(self, *args, **options):
        csvfile = options['csvfile']
        reader = csv.DictReader(csvfile)

        # Wrap in a transaction so if creating any site fails, the database
        # will automatically rollback.
        with transaction.atomic():
            num_rows = 0
            for row in reader:
                new_site = Site(name=row['Organization Name'],
                                domain=row['Domain Name'])
                new_site.save()
                num_rows += 1
            print('Added {} sites from {}'.format(num_rows,
                                                  abspath(csvfile.name)))
コード例 #3
0
ファイル: Frontier.py プロジェクト: pajki/seminar_01
    def add_url(self, new_url, from_page=None, delay=4):
        """
        This function adds potentially new page to frontier and creates new empty page entry with code "FRONTIER"
        :param delay: number of second to delay crawler
        :param new_url: full url of potentially new page (string) to be added to frontier
        :type new_url: str
        :param from_page: page that url was found on
        :type from_page: Page
        :return: value that indicates whether url was added to frontier
        :rtype: bool
        """
        if Page.objects.filter(url=new_url).exists():
            return False

        netloc = urlparse(new_url).netloc

        # Create new site if it doesn't exist yet
        try:
            site = Site.objects.get(domain=netloc)
        except Site.DoesNotExist:
            # Download robots and sitemap
            sitemap_content, _ = self.http_downloader.get_sitemap_for_url(
                "http://" + netloc, True)
            robots_content, _ = self.http_downloader.get_robots_file(
                "http://" + netloc, True)
            # Save new site
            site = Site(domain=netloc,
                        sitemap_content=sitemap_content,
                        robots_content=robots_content)
            site.save()

        page_type = PageType.objects.get(code="FRONTIER")
        page = Page(url=new_url,
                    site=site,
                    page_type_code=page_type,
                    crawl_delay=delay)
        page.save()

        # Create link if valid from_page was given
        if from_page:
            try:
                link = Link(from_page=from_page, to_page=page)
                link.save()
            except ValueError:
                logger.error("from_page must be valid Page instance")

        self.queue.put(page)
        return True
コード例 #4
0
def sites():
    """
    API route that takes a latitude and longitude
    and responds with a fully computed Site object.
    """
    if request.method == 'GET':
        lat = float(request.args.get('lat'))
        lng = float(request.args.get('lng'))
        position = Position(lat, lng)

        # find roads within 1500 ft
        road_distance = request.args.get('road_distance', 457.2)
        # find railways within 4500 ft
        rail_distance = request.args.get('rail_distance', 1371.6)
        # find airports within 15 miles
        airport_distance = request.args.get('airport-distance', 14140.2)

        road_client = HighwaysClient()
        roads = road_client.get_unique_segments(position, road_distance)
        county = None
        growth_rate = .015
        if roads:
            county = road_client.county
            growth_rate = road_client.county.get_growth_rate()

        rail_client = RailroadsClient()
        rails = rail_client.get_unique_segments(position, rail_distance)

        airports_client = AirportsClient()
        airports = airports_client.get_airports(position, airport_distance)
        if airports:
            for a in airports:
                a.set_distance(position)

        site = Site(position=position,
                    roads=roads,
                    rails=rails,
                    county=county,
                    growth_rate=growth_rate,
                    airports=airports)

    elif request.method == 'POST':
        site = SiteSchema().load(request.get_json()).data

    site.process()
    response = SiteSchema().dump(site).data
    return json.jsonify(response)
コード例 #5
0
ファイル: test_data.py プロジェクト: jctt1983/djangoAggr
    def generate_test_data(self):
        sid = transaction.savepoint()
        try:
            for n in xrange(1, 21):
                s = Site(name='Site %s' % n)
                s.save()

                for m in xrange(100):
                    v1 = decimal.Decimal(random.randrange(100, 100000)) / 100
                    v2 = decimal.Decimal(random.randrange(100, 100000)) / 100
                    d = SiteData(site=s, date=date.today(), dataA=v1, dataB=v2)
                    d.save()

                msg = 'Successfully created site "%s"' % s.id
                self.stdout.write(self.style.SUCCESS(msg))
            transaction.savepoint_commit(sid)
        except Exception as e:
            transaction.savepoint_rollback(sid)
            msg = 'Failed to complete this process: ' + str(e)
            self.stdout.write(self.style.ERROR(msg))
コード例 #6
0
ファイル: schema.py プロジェクト: 95ferreira/Manager_Pentests
 def mutate(root, info, input=None):
     ok = True
     site_instance = Site(name=input.name, urlBase=input.urlBase)
     site_instance.save()
     return CreateSite(ok=ok, site=site_instance)