예제 #1
0
    def edit(cls,
             user_id,
             slot_id,
             slot_type,
             name,
             first_filing=None,
             keyword=None):
        data = {
            'slotType': slot_type,
            'name': name,
        }
        if slot_id:
            slot = cls.find_one(dict(_id=slot_id))
            slot._id = int(slot._id)
            if not slot:
                raise SlotNotFound()
            if not slot.appId == user_id:
                raise OperateNotAllowed()
            if slot_type == TYPE.SHUFFLE:
                raise OperateNotAllowed('can not create shuffle type slot')
            slot.last_operated = datetime.now().strftime('%Y-%m-%d')
            slot.update(data)
            slot.save()
        else:
            slot_id = int(_gid(GidKey.slot_key))
            data.update({
                '_id': slot_id,
                'appId': user_id,
                'status': STATUS.OPEN,
                'first_filing': FILLING.FB,
            })
            slot = Slots(data, True)
            slot.save()

        return slot
예제 #2
0
 def add(cls, affiliate_id, url):
     post_back = PostBack(dict(
         _id=_gid(GidKey.post_back_key),
         affiliate_id=int(affiliate_id),
         url=url
     ), True)
     post_back.save()
     return True
예제 #3
0
 def _create(cls, **kwargs):
     _id = _gid(GidKey.invoice_key)
     invoice = Invoice(
         dict(_id=_id,
              user_id=int(kwargs.get('user_id')),
              affiliate_id=int(kwargs.get('affiliate_id')),
              time_range=kwargs.get('time_range'),
              _invoice=kwargs.get('_invoices'),
              _invoice_number='newborn-{}'.format(_id),
              currency=kwargs.get('currency')), True)
     invoice.save()
예제 #4
0
 def _create(cls, **kwargs):
     e_mail = EMail(gen_skel=True)
     e_mail._id = _gid(GidKey.email_key)
     e_mail.user_id = int(kwargs.get('user_id'))
     e_mail.model_id = int(kwargs.get('model_id'))
     e_mail.subject = kwargs.get('subject')
     e_mail.sender = kwargs.get('sender', e_mail.sender)
     e_mail.receiver = kwargs.get('receiver')
     e_mail.message = kwargs.get('message')
     e_mail.save()
     cls._send(e_mail)  # 此处暂时先存后发送
예제 #5
0
 def create(cls, email=None, captcha_code=None):
     captcha = Captcha.find_one(dict(email=email))
     if not captcha:
         captcha = Captcha(
             dict(_id=int(_gid(GidKey.captcha_key)),
                  email=email,
                  code=captcha_code), True)
     else:
         captcha.code = captcha_code
         captcha.create_time = cls._t.current_time
     captcha.save()
     return captcha
예제 #6
0
    def regist(cls, email, password1, password2, company):

        password = cls.encrypt_pwd(password1)
        _id = int(_gid(GidKey.user_key))
        user = User(
            dict(_id=_id,
                 email=email,
                 password=password,
                 company=company,
                 username=email), True)
        user.save()
        return user
예제 #7
0
 def _save(cls, **kw):
     aff = Affiliate(
         dict(_id=_gid(GidKey.affiliate_key),
              user_id=int(kw.get('user_id')),
              country=kw.get('country'),
              account_manager=int(kw.get('account_manager'))
              if kw.get('account_manager') else None,
              company=kw.get('company'),
              status=kw.get('status', '1'),
              create_time=cls._t.today,
              last_update=cls._t.today,
              payment=kw.get('payment')), True)
     aff.save()
     return aff
예제 #8
0
    def _create(cls, **kw):
        password = kw.get('password', '')
        password = cls.encrypt_pwd(password)

        user = User(
            dict(_id=_gid(GidKey.user_key),
                 email=kw.get('email'),
                 password=password,
                 account=kw.get('account'),
                 role_id=int(kw.get('role_id')) if kw.get('role_id') else '',
                 skype_id=kw.get('skype_id'),
                 phone=kw.get('phone')), True)
        user.save()
        return user
예제 #9
0
    def _save(cls, **kw):
        day_cap = 10000000
        month_cap = 10000000
        total_cap = 10000000
        if kw.get('day_cap'):
            day_cap = int(kw.get('day_cap'))
        if kw.get('month_cap'):
            month_cap = int(kw.get('month_cap'))
        if kw.get('total_cap'):
            total_cap = int(kw.get('total_cap'))
        offer_affiliate = OfferAffiliate(
            dict(_id=_gid(GidKey.off_aff_key),
                 offer_id=int(kw.get('offer_id')),
                 affiliate_id=int(kw.get('affiliate_id')),
                 payout=float(kw.get('payout', 0)) if kw.get('payout') else 0,
                 day_cap=day_cap,
                 month_cap=month_cap,
                 total_cap=total_cap,
                 cap=dict(day=day_cap, month=month_cap, total=total_cap),
                 status=kw.get('status', '2')), True)

        offer_affiliate.save()
        return offer_affiliate
예제 #10
0
def get_report():
    """
    """
    http = httplib2.Http()
    url_ios = "https://api.taptica.com/v2/bulk?token=O%2fhjVq4UFGiM6fiHJBo2sw%3d%3d&platforms=iPhone"
    url_android = "https://api.taptica.com/v2/bulk?token=O%2fhjVq4UFGiM6fiHJBo2sw%3d%3d&platforms=android"
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    response_ios, content_ios = http.request(url_ios, 'GET', headers=headers)
    response_android, content_android = http.request(url_android,
                                                     'GET',
                                                     headers=headers)
    offers_ios = yajl.loads(content_ios)['Data']
    offers_android = yajl.loads(content_android)['Data']
    offers = offers_ios + offers_android
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=96)).offer_list if OfferList.find_one(dict(_id=96)) else []  ##
    for offer in offers:
        o = Offers(parse_offer(offer))
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 click_url=o.click_url))
        if re:
            offers_list_new.append(re._id)  ##
            re.is_expired = False  ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            re.preview_url = o.preview_url
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.mini_version = o.mini_version
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.banner_url = o.banner_url
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=96))  ##
    if offers_list:  ##
        offers_list._id = 96  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=96,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #11
0
def get_report():
    """
    """
    http = httplib2.Http()
    url_ios = "http://api.acekoala.com/api/offers?app_key=4603af3476d9b60bfc5d5cdaa577bdca&platform=Ios"
    url_android = "http://api.acekoala.com/api/offers?app_key=4603af3476d9b60bfc5d5cdaa577bdca&platform=Android"
    # url_ios = "http://api.acekoala.com/api/offers?app_key=8dedbea4d48580075b14cd083e5c5f8e&platform=Android"
    # url_android = "http://api.acekoala.com/api/offers?app_key=8dedbea4d48580075b14cd083e5c5f8e&platform=Android&country=us,ru"
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    response_ios, content_ios = http.request(url_ios, 'GET', headers=headers)
    response_android,content_android = http.request(url_android, 'GET', headers=headers)
    offers_ios = yajl.loads(content_ios)['data']
    offers_android = yajl.loads(content_android)['data']
    offers = offers_ios + offers_android
    offers_list_new = [] ##
    offers_list_old = OfferList.find_one(dict(_id=137)).offer_list if OfferList.find_one(dict(_id=137)) else [] ##
    for offer in offers:
        o = Offers(parse_offer(offer))
        re = Offers.find_one(dict(title=o.title, geo_targeting=o.geo_targeting, click_url=o.click_url))
        if re:
            offers_list_new.append(re._id) ##
            re.is_expired = False ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            re.preview_url = o.preview_url
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.mini_version = o.mini_version
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.banner_url = o.banner_url
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False ##
            offers_list_new.append(o._id) ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=137)) ##
    if offers_list: ##
        offers_list._id = 137 ##
        offers_list.offer_list = offers_list_new ##
        offers_list.save() ##
    else: ##
        offers_list = OfferList( ##
            dict( ##
                _id=137, ##
                offer_list=offers_list_new ##
            ) ##
        ) ##
        offers_list.save() ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new)) ##
    for offer_id in is_expired_offers: ##
        offer = Offers.find_one(dict(_id=offer_id)) ##
        try:
            offer.is_expired = True ##
            offer.save()
        except AttributeError:
            continue
예제 #12
0
 def _create(cls, **kwargs):
     role = Role(gen_skel=True)
     role._id = _gid(GidKey.role_key)
     role.name = kwargs.get('name')
     role.permission = kwargs.get('permission')
     role.save()
예제 #13
0
 def _create(cls, **kwargs):
     e_model = EmailModel(
         dict(_id=_gid(GidKey.e_model_key),
              model_name=kwargs.get('model_name'),
              content=kwargs.get('content')), True)
     e_model.save()
예제 #14
0
def get_report():
    """
    """
    http = httplib2.Http()
    url = "http://api.c.avazunativeads.com/s2s?sourceid=21804&pagenum=10000&page=1"
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    response, content = http.request(url, 'GET', headers=headers)
    offers = yajl.loads(content)['ads']['ad']
    offers_list_new = [] ##
    offers_list_old = OfferList.find_one(dict(_id=153)).offer_list if OfferList.find_one(dict(_id=153)) else [] ##
    for offer in offers:
        o = Offers(parse_offer(offer))
        re = Offers.find_one(dict(title=o.title, geo_targeting=o.geo_targeting, click_url=o.click_url))
        if re:
            offers_list_new.append(re._id) ##
            re.is_expired = False ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.mini_version = o.mini_version
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False ##
            offers_list_new.append(o._id) ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=153)) ##
    if offers_list: ##
        offers_list._id = 153 ##
        offers_list.offer_list = offers_list_new ##
        offers_list.save() ##
    else: ##
        offers_list = OfferList( ##
            dict( ##
                _id=153, ##
                offer_list=offers_list_new ##
            ) ##
        ) ##
        offers_list.save() ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new)) ##
    for offer_id in is_expired_offers: ##
        offer = Offers.find_one(dict(_id=offer_id)) ##
        try:
            offer.is_expired = True ##
            offer.save()
        except AttributeError:
            continue
예제 #15
0
def get_report():
    """
    """
    http = httplib2.Http()
    url = "http://cpactions.com/api/v1.0/feed/public/offers?site_id=10459&hash=bfd486e491d72d38c533af53ee3c47b3097bafed&filters[avg_cr][gt]=0.01"
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    response, content = http.request(url, 'GET', headers=headers)
    offers = yajl.loads(content)['offers']
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=91)).offer_list if OfferList.find_one(dict(_id=91)) else []  ##
    for offer in offers:
        o = Offers(parse_offer(offer))
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 click_url=o.click_url))
        if re:
            offers_list_new.append(re._id)  ##
            re.is_expired = False  ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            re.preview_url = o.preview_url
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.rating = o.rating
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=91))  ##
    if offers_list:  ##
        offers_list._id = 91  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=91,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #16
0
 def _save(cls, **kwargs):
     kwargs.update(dict(_id=_gid(GidKey.advertiser_key)))
     ads = Advertisers(kwargs, True)
     ads.save()
     return ads
예제 #17
0
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=61))  ##
    if offers_list:  ##
        offers_list._id = 61  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=61,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue


if __name__ == "__main__":
    get_report()
    print _gid('ApiKey')
예제 #18
0
 def _save(cls, name, status):
     cat = Category(
         dict(_id=_gid(GidKey.category_key), name=name, status=status),
         True)
     cat.save()
예제 #19
0
def get_report():
    """
    """
    http = httplib2.Http()
    url = "https://api.hasoffers.com/Apiv3/json?NetworkId=adattract&Target=Affiliate_Offer&Method=findMyApprovedOffers&api_key=43bc7b535a0a37560334f2b0aea03783476887b9bd574a6ef5c4ca073e74462d"
    headers = {"Content-Type": "application/json"}
    response, content = http.request(url, 'GET', headers=headers)
    offers = yajl.loads(content)['response']['data']
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=138)).offer_list if OfferList.find_one(dict(_id=138)) else []  ##
    for k, v in offers.iteritems():
        click_url = "https://api.hasoffers.com/Apiv3/json?NetworkId=adattract&Target=Affiliate_Offer&Method=generateTrackingLink&api_key=43bc7b535a0a37560334f2b0aea03783476887b9bd574a6ef5c4ca073e74462d&offer_id=" + str(
            k)
        response, click_url = http.request(click_url, 'GET', headers=headers)
        try:
            click_url = yajl.loads(click_url)['response']['data']['click_url']
        except TypeError:
            continue

        country_url = "https://api.hasoffers.com/Apiv3/json?NetworkId=adattract&Target=Affiliate_Offer&Method=getTargetCountries&api_key=43bc7b535a0a37560334f2b0aea03783476887b9bd574a6ef5c4ca073e74462d&ids%5B%5D=" + str(
            k)
        response, country_url = http.request(country_url,
                                             'GET',
                                             headers=headers)
        try:
            country = yajl.loads(
                country_url)['response']['data'][0]['countries'].keys()
        except AttributeError:
            continue
        platform_url = "https://api.hasoffers.com/Apiv3/json?NetworkId=adattract&Target=Affiliate_OfferTargeting&Method=getRuleTargetingForOffer&api_key=43bc7b535a0a37560334f2b0aea03783476887b9bd574a6ef5c4ca073e74462d&offer_id=" + str(
            k)
        response, platform_url = http.request(platform_url,
                                              'GET',
                                              headers=headers)
        try:
            platform_url = yajl.loads(
                platform_url)['response']['data'][0]['rule']['name']
        except IndexError:
            platform_url = ''
        icon_url = "https://api.hasoffers.com/Apiv3/json?NetworkId=adattract&Target=Affiliate_OfferFile&Method=findAll&api_key=43bc7b535a0a37560334f2b0aea03783476887b9bd574a6ef5c4ca073e74462d&filters%5Boffer_id%5D=" + str(
            k)
        response, icon_banner = http.request(icon_url, 'GET', headers=headers)
        try:
            icon_url = yajl.loads(icon_banner)['response']['data'][
                'data'].values()[0]['OfferFile']['thumbnail']
            banner_url = yajl.loads(icon_banner)['response']['data'][
                'data'].values()[0]['OfferFile']['url']
        except (AttributeError, KeyError, TypeError) as e:
            icon_url = ''
            banner_url = ''
        if platform_url == 'Android':
            platform = '2'
        elif platform_url == 'iOS' or 'iPhone':
            platform = '1'
        else:
            continue
        o = dict(
            advertiser_id=138,
            is_api=True,
            offer_type=1,
            category_id=10,
            title=v['Offer']['name'],
            preview_url=v['Offer']['preview_url'],
            platform=platform,
            click_url=click_url +
            "&transaction_id={clickid}&aff_sub={aff_sub2}&affiliate_id={affid}&aff_sub2={aff_sub1}",  #done
            desciption=cgi.escape(v['Offer']['description']),
            total_cap=10000000,
            day_cap=10000000,
            month_cap=10000000,
            cap=dict(day=10000000, month=10000000, total=10000000),
            payment=float(v['Offer']['default_payout']) * 0.9,
            geo_targeting=country,
            conversions=0,
            revenue=float(v['Offer']['default_payout']),
            status='1',
            access_status='1',
            icon_url=icon_url,
            banner_url=banner_url)
        o = Offers(o)
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 platform=o.platform))  ##
        if re:
            offers_list_new.append(re._id)  ##
            re.is_expired = False  ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.title = o.title
            re.preview_url = o.preview_url
            re.platform = o.platform
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.banner_url = o.banner_url
            re.desciption = o.desciption
            re.total_cap = o.total_cap
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.cap = o.cap
            re.payment = o.payment
            re.geo_targeting = o.geo_targeting
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=138))  ##
    if offers_list:  ##
        offers_list._id = 138  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=138,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #20
0
def get_report():
    """
    """
    http = httplib2.Http()
    url = "http://feed.appthis.com/feed/v1?api_key=2b749940922e74c65292a6da90e5dc01&format=json"
    headers = {"Content-Type": "application/json"}
    response, content = http.request(url, 'GET', headers=headers)
    offers = yajl.loads(content)['offers']
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=86)).offer_list if OfferList.find_one(dict(_id=86)) else []  ##
    for k, v in offers.iteritems():
        for campaign in v['campaigns']:
            if not v['icon_url'].startswith('http'):
                v['icon_url'] = 'http:' + v['icon_url']
            if campaign['platform'] == 'Android':
                campaign['platform'] = '2'
            if campaign['platform'] == 'iPhone':
                campaign['platform'] = '1'
            o = dict(
                advertiser_id=86,
                is_api=True,
                offer_type=1,
                category_id=10,
                title=v['name'],
                platform=campaign['platform'],
                package_name=v['android_package_name'],
                click_url=v['tracking_url'] +
                "?clickid={clickid}&source={affid}&source2={aff_sub2}",  #done
                icon_url=v['icon_url'],
                desciption=v['description'],
                total_cap=10000000,
                day_cap=10000000,
                month_cap=10000000,
                cap=dict(day=10000000, month=10000000, total=10000000),
                payment=float(campaign['payout']) * 0.9,
                geo_targeting=campaign['countries'],
                conversions=0,
                revenue=float(campaign['payout']),
                status='1',
                access_status='1')
            o = Offers(o)
            re = Offers.find_one(
                dict(title=o.title,
                     geo_targeting=o.geo_targeting,
                     platform=o.platform))
            if re:
                offers_list_new.append(re._id)  ##
                re.is_expired = False  ##
                re.advertiser_id = o.advertiser_id
                re.is_api = o.is_api
                re.offer_type = o.offer_type
                re.category_id = o.category_id
                re.title = o.title
                re.platform = o.platform
                re.package_name = o.package_name
                re.click_url = o.click_url
                re.icon_url = o.icon_url
                re.desciption = o.desciption
                re.total_cap = o.total_cap
                re.day_cap = o.day_cap
                re.month_cap = o.month_cap
                re.cap = o.cap
                re.payment = o.payment
                re.geo_targeting = o.geo_targeting
                re.conversions = o.conversions
                re.revenue = o.revenue
                re.status = o.status
                re.access_status = o.access_status
                re.save()
            else:
                o._id = _gid('ApiKey')
                o.is_expired = False  ##
                offers_list_new.append(o._id)  ##
                o.save()
    offers_list = OfferList.find_one(dict(_id=86))  ##
    if offers_list:  ##
        offers_list._id = 86  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=86,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #21
0
def get_report():
    """
    """
    http = httplib2.Http()
    url_ios = "https://admin.appnext.com/offerApi.aspx?id=dbc2d386-5f74-4817-a0a6-1b688877ea24"
    url_android = "https://admin.appnext.com/offerApi.aspx?id=cdd8008b-da30-42e3-be36-c64c6bf536ea"
    headers = {
        "Content-Type": "application/json",
        "Accept": "application/json"
    }
    response_ios, content_ios = http.request(url_ios, 'GET', headers=headers)
    response_android, content_android = http.request(url_android,
                                                     'GET',
                                                     headers=headers)
    offers_ios = yajl.loads(content_ios)['apps']
    offers_android = yajl.loads(content_android)['apps']
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=111)).offer_list if OfferList.find_one(dict(_id=111)) else []  ##
    for offer in offers_ios:
        o = Offers(parse_ios_offer(offer))
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 click_url=o.click_url))
        if re:
            offers_list_new.append(re._id)  ##
            re.is_expired = False  ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            # re.preview_url = o.preview_url
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.mini_version = o.mini_version
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()

    for offer in offers_android:
        o = Offers(parse_android_offer(offer))
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 click_url=o.click_url))
        if re:
            offers_list_new.append(re._id)  ##
            re.is_expired = False  ##
            re.advertiser_id = o.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.package_name = o.package_name
            re.title = o.title
            re.preview_url = o.preview_url
            re.desciption = o.desciption
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.total_cap = o.total_cap
            re.cap = o.cap
            re.click_url = o.click_url
            re.icon_url = o.icon_url
            re.mini_version = o.mini_version
            re.payment = o.payment
            re.platform = o.platform
            re.geo_targeting = o.geo_targeting
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=111))  ##
    if offers_list:  ##
        offers_list._id = 111  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=111,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #22
0
            spec.update(dict(createdTime={'$gte': start, '$lte': end}))
        if offer_ids:
            spec.update(dict(offer_id={'$in': offer_ids}))
        data = cls.find(spec)
        return data

    @classmethod
    def get_sum(cls, affiliate_id, currency, start, end):
        data = cls.get_range_data(affiliate_id, currency, start, end)
        # data_sum {'1': {'offer': '', 'paryout': '', 'actions': '', ...}}
        data_sum = InterFace.get_sum(data)
        return [v for k, v in data_sum.items()]


if __name__ == '__main__':
    o = OfferInfo(
        dict(
            _id=_gid(GidKey.invoice_key),
            affiliate_id=71,
            offer_id=15,
            payout=500,
            actions=5,
            amount=40,
            click=100,
            currency='U.S.$',
            createdTime='2016-03-08',
        ))
    o.save()
    # i = Invoice.find()
    pass
예제 #23
0
def get_report():
    """
    """
    http = httplib2.Http()
    url = "http://mapi.affle.co/publisher.php?cId=all&key=63389e65c6fe8cd5f7b2f8d12e698907"
    headers = {"Content-Type": "application/json"}
    response, content = http.request(url, 'GET', headers=headers)
    offers = yajl.loads(content)['data']
    offers_list_new = []  ##
    offers_list_old = OfferList.find_one(dict(
        _id=61)).offer_list if OfferList.find_one(dict(_id=61)) else []  ##
    for offer in offers:
        o = Offers(parse_offer(offer))
        re = Offers.find_one(
            dict(title=o.title,
                 geo_targeting=o.geo_targeting,
                 click_url=o.click_url))
        if re:
            offers_list_new.append(re._id)  ##
            re.advertiser_id = re.advertiser_id
            re.is_api = o.is_api
            re.offer_type = o.offer_type
            re.category_id = o.category_id
            re.title = o.title
            re.platform = o.platform
            # re.package_name = o.package_name
            # re.mini_version = o.mini_version
            re.click_url = o.click_url
            re.banner_url = o.banner_url
            re.preview_url = o.preview_url
            re.total_cap = o.total_cap
            re.day_cap = o.day_cap
            re.month_cap = o.month_cap
            re.cap = o.cap
            re.payment = o.payment
            re.geo_targeting = o.geo_targeting
            re.create_time = o.create_time
            re.conversions = o.conversions
            re.revenue = o.revenue
            re.status = o.status
            re.access_status = o.access_status
            re.is_expired = False  ##
            re.save()
        else:
            o._id = _gid('ApiKey')
            o.is_expired = False  ##
            offers_list_new.append(o._id)  ##
            o.save()
    offers_list = OfferList.find_one(dict(_id=61))  ##
    if offers_list:  ##
        offers_list._id = 61  ##
        offers_list.offer_list = offers_list_new  ##
        offers_list.save()  ##
    else:  ##
        offers_list = OfferList(  ##
            dict(  ##
                _id=61,  ##
                offer_list=offers_list_new  ##
            )  ##
        )  ##
        offers_list.save()  ##
    is_expired_offers = list(set(offers_list_old) - set(offers_list_new))  ##
    for offer_id in is_expired_offers:  ##
        offer = Offers.find_one(dict(_id=offer_id))  ##
        try:
            offer.is_expired = True  ##
            offer.save()
        except AttributeError:
            continue
예제 #24
0
    def get_parm(cls, self, type=None):
        user = self.get_current_user().account
        title = self.get_argument('title', None, strip=True)
        category_id = self.get_argument('category', None, strip=True)
        price_model = self.get_argument('price_model', None,strip=True)
        advertiser_id = self.get_argument('advertiser', None, strip=True)
        tag = self.get_argument('tag', None, strip=True)
        rating = self.get_argument('rating', None, strip=True)
        platform = self.get_argument('platform', None, strip=True)
        icon_url = self.get_argument('icon_url', None, strip=True)
        package_name = self.get_argument('package_name', None, strip=True)
        mini_version = self.get_argument('mini_version', None, strip=True)
        desciption = self.get_argument('desciption', None, strip=True)
        restrictions = self.get_argument('restrictions', None, strip=True)
        click_url = self.get_argument('click_url', None, strip=True)
        banner_url = self.get_argument('banner_url', None, strip=True)
        preview_url = self.get_argument('preview_url', None, strip=True)
        conver_image = self.get_argument('conver_image', None, strip=True)
        total_cap = self.get_argument('total_cap', 0, strip=True)
        if not total_cap:
            total_cap = 0
        daily_cap = self.get_argument('daily_cap', 0, strip=True)
        if not daily_cap:
            daily_cap = 0
        month_cap = self.get_argument('month_cap', 0, strip=True)
        if not month_cap:
            month_cap = 0
        revenue = self.get_argument('revenue', None, strip=True)
        payment = self.get_argument('payment', None, strip=True)
        root = self.get_argument('root', None, strip=True)
        include_geo_targeting = self.get_arguments('include_geo_targeting')
        exclude_geo_targeting = self.get_arguments('exclude_geo_targeting')
        offer_type = self.get_argument('offer_type', 1, strip=True)
        status = self.get_argument('status', None, strip=True)
        access_status = self.get_argument('access_status', None, strip=True)
        black_ip = []
        to_api = True if self.get_argument('to_api', None, strip=True) == "true" else False
        now = datetime.now()
        create_time = Tool.datetime_str(now, "%Y%m%d-%H:%M:%S")
        last_update = Tool.datetime_str(now, "%Y%m%d-%H:%M:%S")

        kw = dict(
                title=title,
                category_id=int(category_id) if category_id else None,
                price_model=price_model,
                advertiser_id=int(advertiser_id) if advertiser_id else None,
                tag=tag,
                rating=rating,
                platform=platform,
                icon_url=icon_url,
                package_name=package_name,
                mini_version=mini_version,
                desciption=desciption,
                restrictions=restrictions,
                click_url=click_url,
                banner_url=banner_url,
                preview_url=preview_url,
                conver_image=conver_image,
                total_cap=int(total_cap) if total_cap else 10000000,
                day_cap=int(daily_cap) if daily_cap else 10000000,
                month_cap=int(month_cap) if month_cap else 10000000,
                cap=dict(
                    day=int(daily_cap) if daily_cap else 10000000,
                    month=int(month_cap) if month_cap else 10000000,
                    total=int(total_cap) if total_cap else 10000000
                ),
                revenue=float(revenue) if revenue else 0,
                payment=float(payment) if payment else 0,
                root=root,
                geo_targeting=include_geo_targeting,
                exclude_geo_targeting=exclude_geo_targeting,
                status=status,
                access_status=access_status,
                black_ip=black_ip,
                user=user,
                offer_type=offer_type,
                to_api=to_api,
                create_time=create_time,
                last_update=last_update,
                pause_job_set=False
            )
        if not type:
            kw['_id'] = _gid(GidKey.offer_key)
        return kw
예제 #25
0
            total.append((item['total']))
        result = {
            'new_data': {
                'x': x,
                'y': new
            },
            'active_data': {
                'x': x,
                'y': active
            },
            'total_data': {
                'x': x,
                'y': total
            }
        }
        return result
if __name__ == "__main__":
    activity = Activity(
        dict(
            _id=_gid('activity'),
            publisher_id=1,
            slot_id=2,
            country='en',
            time='2016-04-18',
            new=50,
            active=51,
            total=52,
        )
    )
    activity.save()
예제 #26
0
# coding:utf-8
from solo.web.mongo import Doc
from app.web.model.gid import gid as _gid


class Publisher(Doc):
    structure = dict(
        _id=int,
        publisher_id=int,
        name=str,
        slot=list,
    )


if __name__ == '__main__':
    publisher = Publisher(
        dict(_id=_gid('analysis'),
             publisher_id=4,
             name='jay',
             slot=[13, 14, 15, 16]))
    publisher.save()