示例#1
0
文件: ga.py 项目: kra3/py-ga-mob
    def test_request(self, mocked):
        from pyga.requests import Tracker, Visitor, Session, Page

        meta = dict(
            REMOTE_ADDR="134.321.0.1",
            HTTP_USER_AGENT="Test User Agent 1.0",
            HTTP_ACCEPT_LANGUAGE="en-US,en;q=0.8,ru;q=0.6",
        )
        tracker = Tracker("UA-0000-0000", "test.com")
        visitor = Visitor()
        visitor.extract_from_server_meta(meta)
        self.assertEqual(visitor.ip_address, "134.321.0.1")
        self.assertEqual(visitor.locale, "en_US")
        self.assertEqual(visitor.user_agent, "Test User Agent 1.0")
        session = Session()
        page = Page("/test_path")
        tracker.track_pageview(page, session, visitor)
        (request,), _ = mocked.call_args_list.pop()
        self.assertEqual(request.headers.get("X-forwarded-for"), "134.321.0.1")
        self.assertEqual(
            request.headers.get("User-agent"), "Test User Agent 1.0"
        )

        # Assert that &ua and &uip are passed along, and that &uip is properly
        # anonymized.
        qs = urlparse(request.get_full_url()).query
        params = parse_qs(qs)
        self.assertEqual(params["uip"][0], "134.321.0.0")
        self.assertEqual(params["ua"][0], "Test User Agent 1.0")
示例#2
0
    def test_request(self):
        from pyga.requests import Tracker, Visitor, Session, Page
        from mock import Mock
        from urlparse import urlparse, parse_qs
        import urllib2

        mocked = urllib2.urlopen = Mock()

        meta = dict(
            REMOTE_ADDR='134.321.0.1',
            HTTP_USER_AGENT='Test User Agent 1.0',
            HTTP_ACCEPT_LANGUAGE='en-US,en;q=0.8,ru;q=0.6',
        )
        tracker = Tracker('UA-0000-0000', 'test.com')
        visitor = Visitor()
        visitor.extract_from_server_meta(meta)
        self.assertEqual(visitor.ip_address, '134.321.0.1')
        self.assertEqual(visitor.locale, 'en_US')
        self.assertEqual(visitor.user_agent, 'Test User Agent 1.0')
        session = Session()
        page = Page('/test_path')
        tracker.track_pageview(page, session, visitor)
        (request, ), _ = mocked.call_args_list.pop()
        self.assertEqual(request.headers.get('X-forwarded-for'), '134.321.0.1')
        self.assertEqual(request.headers.get('User-agent'), 'Test User Agent 1.0')

        # Assert that &ua and &uip are passed along, and that &uip is properly
        # anonymized.
        qs = urlparse(request.get_full_url()).query
        params = parse_qs(qs)
        self.assertEqual(params['uip'][0], '134.321.0.0')
        self.assertEqual(params['ua'][0], 'Test User Agent 1.0')
示例#3
0
def track_event(category=None, action=None, label=None, value=None, identifier=None, first_use=None, add=None,
                noninteraction=True):
    anonymousConfig = Config()
    anonymousConfig.anonimize_ip_address = True

    tracker = Tracker('UA-86466078-1', 'none', conf=anonymousConfig)
    visitor = Visitor()

    # convert the last 8 bytes of the machine identifier to an integer to get a "unique" user
    visitor.unique_id = struct.unpack("!I", binascii.unhexlify(identifier[32:]))[0]/2

    if add:
        # add visitor's ip address (will be anonymized)
        visitor.ip_address = add

    if first_use:
        visitor.first_visit_time = first_use

    session = Session()
    event = Event(category=category, action=action, label=label, value=value, noninteraction=noninteraction)
    path = u"/" + u"/".join([category, action, label])
    page = Page(path.lower())

    tracker.track_event(event, session, visitor)
    tracker.track_pageview(page, session, visitor)
def index():
    # Users identity
    user_id = request.headers.get('X-Mxit-USERID-R', 'dev').encode('utf-8')
    user_nick = request.form.get('X-Mxit-ID-R', 'avoid3d')

    visitor = Visitor()
    visitor.ip_address = request.headers.get('X-Forwarded-For', '127.0.0.1')
    ga_session = Session()

    # User's msg to cleverbot
    text = request.args.get('input', None)

    msgs = ['Welcome to chatterbot! Say Hello?']
    page = Page('/')

    if text:
        page = Page('/chat/')
        # Attempt to fetch a session for the user.
        session = client.get(user_id)
        if not session:
            session = cleverbot.Session()
            session.msgs = []

        session.msgs.append('%s: %s' % (user_nick, text))
        reply = session.Ask(text)
        session.msgs.append('bot: %s' % reply)

        client.set(user_id, session)
        msgs = session.msgs[-10:]

    tracker.track_pageview(page, ga_session, visitor)
    return render_template('index.html', msgs=msgs, Markup=Markup)
示例#5
0
def detail():
    try:
        voice_one   = r.hgetall('+254711082306')
        voice_two   = r.hgetall('+254711082513')
        voice_three = r.hgetall('+254711082514')

        visitor = Visitor()
        visitor.ip_address = request.remote_addr
        session = Session()
        page = Page('/detail')
        event = Event('convertion', 'call') # category - action
        tracker.track_pageview(page, session, visitor)

        tracker.track_event(event, session, visitor)

        data = [voice_one, voice_two, voice_three]

        print data

        resp = make_response(render_template('detail.html', data=data))
        resp.cache_control.no_cache = True
        return resp
    except Exception, e:
        logging.warning('failed on detail route')
        raise e
示例#6
0
def register_event(page):
	tracker = Tracker(GA_TRACKER, DOMAIN)
	visitor = Visitor()
	visitor.extract_from_server_meta(request.environ)
	session = Session()
	page = Page(page)
	tracker.track_pageview(page, session, visitor)
示例#7
0
文件: ga.py 项目: klen/adrest
 def get(self, request, path=None, **resources):
     """ Proxy request to GA. """
     tracker = Tracker(self._meta.account_id, self._meta.domain or request.META.get("SERVER_NAME"))
     visitor = Visitor()
     visitor.extract_from_server_meta(request.META)
     session = Session()
     page = Page(path)
     tracker.track_pageview(page, session, visitor)
示例#8
0
def make_visitor():
    from pyga.requests import Visitor

    info = lambda x: xbmc.getInfoLabel("System.%s" % x)
    visitor = Visitor()
    visitor.user_agent = get_user_agent()
    visitor.locale = xbmc.getLanguage()
    visitor.screen_resolution = "%sx%s" % (info("ScreenWidth"), info("ScreenHeight"))
    return visitor
示例#9
0
        def send_ga_data():
            try:
                tracker = Tracker(self._ga_id, self._ga_force_host or request.host)
                session = Session()
                page = Page(request.path)
                visitor = Visitor()
                visitor.ip_address = request.remote_addr

                self.send_data_to_gaserver(tracker, 'track_pageview', (page, session, visitor))
            except Exception, e:
                current_app.logger.error('exception occur. msg[%s], traceback[%s]', str(e), __import__('traceback').format_exc())
 def send(self, identity, properties, aliases, events, request_meta):
     host_name = (request_meta.get('HTTP_HOST') or
                  Site.objects.get_current().domain)
     tracker = Tracker(self.web_id, host_name)
     visitor = Visitor()
     visitor.unique_id = abs(hash(identity)) >> 33
     visitor.extract_from_server_meta(request_meta)
     session = Session()
     for event_name, event_properties in events:
         event = Event(category=self.event_category, action=event_name)
         tracker.track_event(event, session, visitor)
示例#11
0
def ping():
    """ping back to ga"""
    if not ga_account:
        return

    tracker = Tracker(ga_account, ga_domain)
    visitor = Visitor()
    visitor.ip_address = request.remote_addr
    session = Session()
    page = Page(request.path)
    if 'referer' in request.headers:
        page.referrer = request.headers['referer']
    tracker.track_pageview(page, session, visitor)
示例#12
0
    def process_request(self, request):
        if settings.GA_ENABLED:
            ip = request.META["REMOTE_ADDR"]
            if request.META.has_key("CF-Connecting-IP"):
                ip = request.META["CF-Connecting-IP"]

            tracker = Tracker(settings.GA_KEY, request.META["HTTP_HOST"])
            visitor = Visitor()
            visitor.ip_address = ip
            session = Session()
            page = Page(request.path)
            tracker.track_pageview(page, session, visitor)

        return None
示例#13
0
    def ga_track(self, settings, event={}):
        _req_list = []
        no_tracking = self.get_argument('no_tracking', None)
        is_prod = settings.ga_is_prod
        if not no_tracking and is_prod and settings.ga_account:
            _req = self.request
            remote_ip = _req.headers.get("X-Real-Ip",
                        _req.headers.get("X-Forwarded-For",
                        _req.remote_ip))
            user_agent = _req.headers.get("User-Agent", None)
            visitor = Visitor()
            visitor.ip_address = remote_ip
            visitor.user_agent = user_agent
            #get visitor.locale
            visitor.extract_from_server_meta(
                {"HTTP_ACCEPT_LANGUAGE": _req.headers.get("Accept-Language", None)}
            )
            session = Session()
            page = Page(_req.path)
            tracker = Tracker(settings.ga_account, settings.ga_tracker_url)
            # tracker.track_pageview(page, session, visitor)  #this is non-async request
            pvr = PageViewRequest(config=tracker.config,
                                  tracker=tracker,
                                  visitor=visitor,
                                  session=session,
                                  page=page)
            r = pvr.build_http_request()
            _req_list.append(HTTPRequest(r.get_full_url(),
                                         "POST" if (r.data) else "GET",
                                         headers=r.headers,
                                         body=r.data))
            if event:
                evt = Event(**event)
                #tracker.track_event(evt, session, visitor)  #this is non-async request
                er = EventRequest(config=tracker.config,
                                  tracker=tracker,
                                  visitor=visitor,
                                  session=session,
                                  event=evt)
                r = er.build_http_request()
                _req_list.append(HTTPRequest(r.get_full_url(),
                                             "POST" if (r.data) else "GET",
                                             headers=r.headers,
                                             body=r.data))

            #now send actual async requests
            http_client = AsyncHTTPClient()
            for _req in _req_list:
                http_client.fetch(_req)
示例#14
0
文件: ga.py 项目: tj-4-zune/py-ga-mob
    def test_request(self):
        from pyga.requests import Tracker, Visitor, Session, Page
        from mock import Mock
        import sys
        if sys.version > '3':
            from urllib.parse import urlparse, parse_qs
        else:
            from urlparse import urlparse, parse_qs
        import urllib2

        mocked = urllib2.urlopen = Mock()

        meta = dict(
            REMOTE_ADDR='134.321.0.1',
            HTTP_USER_AGENT='Test User Agent 1.0',
            HTTP_ACCEPT_LANGUAGE='en-US,en;q=0.8,ru;q=0.6',
        )
        tracker = Tracker('UA-0000-0000', 'test.com')
        visitor = Visitor()
        visitor.extract_from_server_meta(meta)
        self.assertEqual(visitor.ip_address, '134.321.0.1')
        self.assertEqual(visitor.locale, 'en_US')
        self.assertEqual(visitor.user_agent, 'Test User Agent 1.0')
        session = Session()
        page = Page('/test_path')
        tracker.track_pageview(page, session, visitor)
        (request, ), _ = mocked.call_args_list.pop()
        self.assertEqual(request.headers.get('X-forwarded-for'), '134.321.0.1')
        self.assertEqual(request.headers.get('User-agent'),
                         'Test User Agent 1.0')

        # Assert that &ua and &uip are passed along, and that &uip is properly
        # anonymized.
        qs = urlparse(request.get_full_url()).query
        params = parse_qs(qs)
        self.assertEqual(params['uip'][0], '134.321.0.0')
        self.assertEqual(params['ua'][0], 'Test User Agent 1.0')
示例#15
0
def view(viewId):
    try:
        shuffle(PHONE_NUMBERS)
        url = '/view/' + viewId

        # r.hset(url, 'phoneNumber', PHONE_NUMBERS[0])
        # r.hset(url, 'location', 'location')

        visitor = Visitor()
        visitor.ip_address = request.remote_addr
        session = Session()
        page = Page('/view/' + viewId )

        event = Event('convertion', 'call-initiated') # category - action
        tracker.track_pageview(page, session, visitor)

        tracker.track_event(event, session, visitor)

        resp = make_response(render_template('view.html', phoneNumber=PHONE_NUMBERS[0]))
        resp.cache_control.no_cache = True
        return resp
    except Exception, e:
        logging.warning('failed on view route')
        raise e
示例#16
0
    def test_request(self):
        from pyga.requests import Tracker, Visitor, Session, Page
        from mock import Mock
        import urllib2

        mocked = urllib2.urlopen = Mock()

        meta = dict(
            REMOTE_ADDR='134.321.0.1',
            HTTP_USER_AGENT='Test User Agent 1.0',
            HTTP_ACCEPT_LANGUAGE='en-US,en;q=0.8,ru;q=0.6',
        )
        tracker = Tracker('UA-0000-0000', 'test.com')
        visitor = Visitor()
        visitor.extract_from_server_meta(meta)
        self.assertEqual(visitor.ip_address, '134.321.0.1')
        self.assertEqual(visitor.locale, 'en_US')
        self.assertEqual(visitor.user_agent, 'Test User Agent 1.0')
        session = Session()
        page = Page('/test_path')
        tracker.track_pageview(page, session, visitor)
        (request, ), _ = mocked.call_args_list.pop()
        self.assertEqual(request.headers.get('X-forwarded-for'), '134.321.0.1')
        self.assertEqual(request.headers.get('User-agent'), 'Test User Agent 1.0')
示例#17
0
    def ga_track(self, event={}):
        _req_list = []
        no_tracking = self.get_argument('no_tracking', None)
        is_prod = getattr(config, 'RUN_IN_PROD', False)
        if not no_tracking and is_prod and hasattr(config, "GA_ACCOUNT"):
            _req = self.request
            remote_ip = _req.headers.get("X-Real-Ip",
                        _req.headers.get("X-Forwarded-For",
                        _req.remote_ip))
            user_agent = _req.headers.get("User-Agent", None)
            visitor = Visitor()
            visitor.ip_address = remote_ip
            visitor.user_agent = user_agent
            #get visitor.locale
            visitor.extract_from_server_meta(
                {"HTTP_ACCEPT_LANGUAGE": _req.headers.get("Accept-Language", None)}
            )
            session = Session()
            page = Page(_req.path)
            tracker = Tracker(config.GA_ACCOUNT, 'MyVariant.info')
            # tracker.track_pageview(page, session, visitor)  #this is non-async request
            pvr = PageViewRequest(config=tracker.config,
                                  tracker=tracker,
                                  visitor=visitor,
                                  session=session,
                                  page=page)
            r = pvr.build_http_request()
            _req_list.append(HTTPRequest(r.get_full_url(),
                                         "POST" if (r.data) else "GET",
                                         headers=r.headers,
                                         body=r.data))
            if event:
                evt = Event(**event)
                #tracker.track_event(evt, session, visitor)  #this is non-async request
                er = EventRequest(config=tracker.config,
                                  tracker=tracker,
                                  visitor=visitor,
                                  session=session,
                                  event=evt)
                r = er.build_http_request()
                _req_list.append(HTTPRequest(r.get_full_url(),
                                             "POST" if (r.data) else "GET",
                                             headers=r.headers,
                                             body=r.data))

            #now send actual async requests
            http_client = AsyncHTTPClient()
            for _req in _req_list:
                http_client.fetch(_req)
示例#18
0
def track_event(category=None, action=None, label=None):
    if not settings.analytics.getboolean('enabled'):
        return

    anonymousConfig = Config()
    anonymousConfig.anonimize_ip_address = True

    tracker = Tracker('UA-138214134-3', 'none', conf=anonymousConfig)

    try:
        if os.path.isfile(os.path.normpath(os.path.join(args.config_dir, 'config', 'analytics.dat'))):
            with open(os.path.normpath(os.path.join(args.config_dir, 'config', 'analytics.dat')), 'r') as handle:
                visitor_text = handle.read()
            visitor = pickle.loads(codecs.decode(visitor_text.encode(), "base64"))
            if visitor.user_agent is None:
                visitor.user_agent = os.environ.get("SZ_USER_AGENT")
            if visitor.unique_id > int(0x7fffffff):
                visitor.unique_id = random.randint(0, 0x7fffffff)
        else:
            visitor = Visitor()
            visitor.unique_id = random.randint(0, 0x7fffffff)
    except:
        visitor = Visitor()
        visitor.unique_id = random.randint(0, 0x7fffffff)

    session = Session()
    event = Event(category=category, action=action, label=label, value=1)

    tracker.add_custom_variable(CustomVariable(index=1, name='BazarrVersion',
                                               value=os.environ["BAZARR_VERSION"].lstrip('v'), scope=1))
    tracker.add_custom_variable(CustomVariable(index=2, name='PythonVersion', value=platform.python_version(), scope=1))
    if settings.general.getboolean('use_sonarr'):
        tracker.add_custom_variable(CustomVariable(index=3, name='SonarrVersion', value=sonarr_version, scope=1))
    else:
        tracker.add_custom_variable(CustomVariable(index=3, name='SonarrVersion', value='unused', scope=1))
    if settings.general.getboolean('use_radarr'):
        tracker.add_custom_variable(CustomVariable(index=4, name='RadarrVersion', value=radarr_version, scope=1))
    else:
        tracker.add_custom_variable(CustomVariable(index=4, name='RadarrVersion', value='unused', scope=1))
    tracker.add_custom_variable(CustomVariable(index=5, name='OSVersion', value=platform.platform(), scope=1))

    try:
        tracker.track_event(event, session, visitor)
    except:
        logging.debug("BAZARR unable to track event.")
        pass
    else:
        with open(os.path.normpath(os.path.join(args.config_dir, 'config', 'analytics.dat')), 'w+') as handle:
            handle.write(codecs.encode(pickle.dumps(visitor), "base64").decode())
示例#19
0
def on_order_paid(order, payment, request, **kwargs):
    if not request:
        return

    ga_data = order.data.get("google_analytics", {})
    tracker = Tracker(settings.GOOGLE_ANALYTICS_ID, request.get_host())

    # create visitor
    visitor = Visitor()
    try:
        visitor.extract_from_utma(ga_data.get("utma", ""))
    except ValueError:
        return  # utma cookie value is invalid
    visitor.extract_from_server_meta(ga_data.get("meta", {}))

    # create session
    session = Session()
    try:
        session.extract_from_utmb(ga_data.get("utmb", ""))
    except ValueError:
        return  # utmb cookie value is invalid

    # create transaction
    transaction = Transaction()
    transaction.order_id = order.order_id
    transaction.total = order.subtotal
    transaction.tax = order.tax
    transaction.shipping = order.shipping
    transaction.city = order.billing_city.encode("utf8")
    transaction.country = ("%s" % order.billing_country).encode("utf8")
    transaction.currency = order.currency
    for item in order.items.all():
        i = Item()
        i.sku = item.sku
        i.name = item.name.encode("utf8")
        i.price = item.unit_price
        i.quantity = item.quantity
        transaction.add_item(i)

    # tracker.setcurrencyCode
    tracker.track_transaction(transaction, session, visitor)

    order.data["google_analytics"]["tracked"] = now()
    order.save()
示例#20
0
文件: ga.py 项目: dizzelk/Stream
def make_visitor():
    from pyga.requests import Visitor
    visitor = Visitor()
    visitor.user_agent = get_user_agent()
    visitor.locale = xbmc.getLanguage()
    return visitor
示例#21
0
文件: ga.py 项目: serseri23/Halowrepo
def make_visitor():
    from pyga.requests import Visitor
    visitor = Visitor()
    visitor.user_agent = get_user_agent()
    visitor.locale = xbmc.getLanguage()
    return visitor
示例#22
0
def complete_process(request, backend, *args, **kwargs):
    """Authentication complete process"""
    # pop redirect value before the session is trashed on login()
    redirect_value = request.session.get(REDIRECT_FIELD_NAME, '') or \
                     request.REQUEST.get(REDIRECT_FIELD_NAME, '')

    if GA_ID:
        ga_tracker = Tracker(GA_ID, request.META.get('HTTP_HOST', ""))
        utmz = request.COOKIES.get("__utmz")
        if utmz:
            try:
                campaign = Campaign()
                campaign.extract_from_utmz(utmz)
                ga_tracker.campaign = campaign
            except:
                pass
        ga_visitor = Visitor()
        try:
            ga_visitor.extract_from_utma(request.COOKIES.get("__utma",""))
        except:
            pass
        ga_visitor.ip_address = request.META.get('REMOTE_ADDR')
        ga_session = Session()
        try:
            ga_session.extract_from_utmb(request.COOKIES.get("__utmb"))
        except:
            pass
    else:
        ga_tracker = None

    # Django 1.5 allow us to define custom User Model, so integrity errors
    # can be raised.
    try:
        user = auth_complete(request, backend, *args, **kwargs)
    except IntegrityError:
        try:
            if ga_tracker:
                ga_tracker.track_event(Event("Logins",backend.AUTH_BACKEND.name+"CompleteError",
                                       request.build_absolute_uri()),
                                       ga_session, ga_visitor)
        except:
            pass
        url = setting('SIGNUP_ERROR_URL', setting('LOGIN_ERROR_URL'))
        return HttpResponseRedirect(url)

    if isinstance(user, HttpResponse):
        return user

    if not user and request.user.is_authenticated():
        return HttpResponseRedirect(redirect_value)

    msg = None
    

    if user:
        if getattr(user, 'is_active', True):
            # catch is_new flag before login() might reset the instance
            is_new = getattr(user, 'is_new', False)
            login(request, user)
            # user.social_user is the used UserSocialAuth instance defined
            # in authenticate process
            social_user = user.social_user
            if redirect_value:
                request.session[REDIRECT_FIELD_NAME] = redirect_value or \
                                                       DEFAULT_REDIRECT

            if setting('SOCIAL_AUTH_SESSION_EXPIRATION', True):
                # Set session expiration date if present and not disabled by
                # setting. Use last social-auth instance for current provider,
                # users can associate several accounts with a same provider.
                expiration = social_user.expiration_datetime()
                if expiration:
                    try:
                        request.session.set_expiry(expiration)
                    except OverflowError:
                        # Handle django time zone overflow, set default expiry.
                        request.session.set_expiry(None)

            # store last login backend name in session
            key = setting('SOCIAL_AUTH_LAST_LOGIN',
                          'social_auth_last_login_backend')
            request.session[key] = social_user.provider

            # Remove possible redirect URL from session, if this is a new
            # account, send him to the new-users-page if defined.
            new_user_redirect = backend_setting(backend,
                                           'SOCIAL_AUTH_NEW_USER_REDIRECT_URL')
            if new_user_redirect and is_new:
                url = new_user_redirect
            else:
                url = redirect_value or \
                      backend_setting(backend,
                                      'SOCIAL_AUTH_LOGIN_REDIRECT_URL') or \
                      DEFAULT_REDIRECT
            if ga_tracker:
                ga_tracker.track_event(Event("Logins",backend.AUTH_BACKEND.name+"Complete",
                                   request.build_absolute_uri()),
                                   ga_session, ga_visitor)
        else:
            msg = setting('SOCIAL_AUTH_INACTIVE_USER_MESSAGE', None)
            url = backend_setting(backend, 'SOCIAL_AUTH_INACTIVE_USER_URL',
                                  LOGIN_ERROR_URL)
    else:
        msg = setting('LOGIN_ERROR_MESSAGE', None)
        url = backend_setting(backend, 'LOGIN_ERROR_URL', LOGIN_ERROR_URL)
        if ga_tracker:
            ga_tracker.track_event(Event("Logins",backend.AUTH_BACKEND.name+"CompleteError",
                               request.build_absolute_uri()),
                               ga_session, ga_visitor)
    if msg:
        messages.error(request, msg)

    if redirect_value and redirect_value != url:
        redirect_value = quote(redirect_value)
        if '?' in url:
            url += '&%s=%s' % (REDIRECT_FIELD_NAME, redirect_value)
        else:
            url += '?%s=%s' % (REDIRECT_FIELD_NAME, redirect_value)
    return HttpResponseRedirect(url)
示例#23
0
#!/usr/bin/python
from pyga.requests import Tracker, Page, Session, Visitor
import random
import time

tracker = Tracker('UA-7848481-1', 'apocalypsebag.com')

quant = random.randint(10, 100)
ips = ['46.21.16.10', '5.83.240.190', '31.6.128.445', '58.99.64.32', '49.128.32.22']

cnt = 1
while cnt < quant:
    ip = ips[random.randint(0, 4)]
    uri = '/'
    #print "page request %d of %d for %s from %s" % (cnt, quant, uri, ip)

    visitor = Visitor()
    visitor.ip_address = ip
    session = Session()
    page = Page(uri)
    tracker.track_pageview(page, session, visitor)

    cnt += 1
    time.sleep(random.randint(4, 10))
示例#24
0
from pyga.requests import Tracker, Page, Session, Visitor, Event

tracker = Tracker('UA-78705248-1', 'http://127.0.0.1:8080')

visitor = Visitor()
visitor.ip_address = '194.54.176.12'
session = Session()
page = Page('/call')

event = Event('convertion', 'call') # category - action
tracker.track_pageview(page, session, visitor)
tracker.track_event(event, session, visitor)
示例#25
0
def track_event(category=None, action=None, label=None):
    if not settings.analytics.getboolean('enabled'):
        return

    anonymousConfig = Config()
    anonymousConfig.anonimize_ip_address = True

    tracker = Tracker('UA-138214134-3', 'none', conf=anonymousConfig)

    try:
        if settings.analytics.visitor:
            visitor = pickle.loads(base64.b64decode(
                settings.analytics.visitor))
        if visitor.user_agent is None:
            visitor.user_agent = os.environ.get("SZ_USER_AGENT")
        if visitor.unique_id > int(0x7fffffff):
            visitor.unique_id = random.randint(0, 0x7fffffff)
    except:
        visitor = Visitor()
        visitor.unique_id = long(random.randint(0, 0x7fffffff))

    session = Session()
    event = Event(category=category, action=action, label=label, value=1)
    path = u"/" + u"/".join([category, action, label])
    page = Page(path.lower())

    tracker.add_custom_variable(
        CustomVariable(index=1,
                       name='BazarrVersion',
                       value=os.environ["BAZARR_VERSION"],
                       scope=1))
    tracker.add_custom_variable(
        CustomVariable(index=2,
                       name='PythonVersion',
                       value=platform.python_version(),
                       scope=1))
    if settings.general.getboolean('use_sonarr'):
        tracker.add_custom_variable(
            CustomVariable(index=3,
                           name='SonarrVersion',
                           value=sonarr_version,
                           scope=1))
    if settings.general.getboolean('use_radarr'):
        tracker.add_custom_variable(
            CustomVariable(index=4,
                           name='RadarrVersion',
                           value=radarr_version,
                           scope=1))
    tracker.add_custom_variable(
        CustomVariable(index=5,
                       name='OSVersion',
                       value=platform.platform(),
                       scope=1))

    try:
        tracker.track_event(event, session, visitor)
        # tracker.track_pageview(page, session, visitor) ## Commented because we were having too much hits on GA.
    except:
        pass
    else:
        settings.analytics.visitor = base64.b64encode(pickle.dumps(visitor))
        with open(os.path.join(args.config_dir, 'config', 'config.ini'),
                  'w+') as handle:
            settings.write(handle)
示例#26
0
if not Addon.getSetting('uniq_id'):
    from random import randint
    uniq_id=random.random()*time.time()
    Addon.setSetting('uniq_id', str(uniq_id))

GAcookie =Addon.getSetting('GAcookie')
uniq_id=Addon.getSetting('uniq_id')

ses_file = xbmc.translatePath('special://temp/'+ 'session.ag')
vis_file = xbmc.translatePath('special://temp/'+ 'visitor.ag')
try:
    with open(vis_file, 'rb') as f:
        visitor = pickle.load(f)

except: 
    visitor = Visitor()
    visitor.user_agent=get_user_agent()
    visitor.locale = xbmc.getLanguage()
    info = lambda x: xbmc.getInfoLabel("System.%s" % x)
    visitor.screen_resolution = "%sx%s" % (info("ScreenWidth"), info("ScreenHeight"))
    visitor.unique_id=random.randint(0, 0x7fffffff)

    with open(vis_file, 'wb') as f:
        pickle.dump(visitor, f)
       
try:
    with open(ses_file, 'rb') as f:
        session = pickle.load(f)

except: 
    session = Session()