Esempio n. 1
0
def put_fb_page(fb_user_obj, brand_name, page_obj):
    url = "%s" % (page_obj["id"])
    page_data = GraphAPI(page_obj["access_token"]).request(url)

    fb_page = FBPage()
    fb_page.page_id = page_data["id"]
    fb_page.name = page_data["name"]
    page_data.pop("id", None)
    page_data.pop("name", None)
    fb_page.fields = page_data

    def save_obj(page):
        return FBPage.collection().save(page.serialize())

    dupe_obj = FBPage.collection().find_one({"page_id": page_obj["id"]})
    if dupe_obj is None:
        fb_page._id = save_obj(fb_page)
    else:
        FBPage.collection().update({"page_id": page_obj["id"]}, fb_page.serialize())
        fb_page = FBPage.unserialize(FBPage.collection().find_one({"page_id": page_obj["id"]}))

    update_brand_mapping(fb_user_obj.u_id, brand_name, "facebook", page_obj["id"], page_obj["access_token"])

    t = Thread(target=load_fb_page_to_db, args=(page_obj["id"], page_obj["access_token"]))
    t.setDaemon(False)
    t.start()

    return fb_page
Esempio n. 2
0
def save_tw_user(user_id, brand_name, key, secret):
    """
    Add twitter account to the unifide user and spawn thread to pull recent tweewts from home timeline
    """
    api, token_key, token_secret = get_api(key, secret)
    twUser_obj = TWUser()
    twUser_obj.u_id = user_id
    twUser_obj.tw_id = api.me().id_str
    twUser_obj.brand_name = brand_name
    twUser_obj.username = api.me().screen_name

    TWUser.collection().update({"u_id": user_id, "brand_name": brand_name}, twUser_obj.serialize())
    saved_tw_user_obj = TWUser.unserialize(TWUser.collection().find_one({"u_id": user_id, "brand_name": brand_name}))

    update_brand_mapping(user_id, brand_name, "twitter", api.me().id_str, {"key": key, "secret": secret})

    t = Thread(target=save_tweets, args=(user_id, saved_tw_user_obj.tw_id, brand_name))
    t.setDaemon(False)
    t.start()

    return saved_tw_user_obj
Esempio n. 3
0
def save_fsq_user(user_id, brand_name, access_token):
    api = get_api()
    api.set_access_token(access_token)
    me = api.users()["user"]

    fsq_user = FSQUser()
    fsq_user.fsq_id = me["id"]
    fsq_user.u_id = user_id
    fsq_user.brand_name = brand_name
    fsq_user.first_name = key_check(me, "firstName")
    fsq_user.last_name = key_check(me, "lastName")
    fsq_user.fields = me

    dupe_obj = FSQUser.collection().find_one({"u_id": user_id, "brand_name": brand_name})
    if dupe_obj is None:
        fsq_user._id = FSQUser.collection().insert(fsq_user.serialize())
    else:
        FSQUser.collection().update({"u_id": user_id, "brand_name": brand_name}, fsq_user.serialize())
        fsq_user = FSQUser.unserialize(FSQUser.collection().find_one({"u_id": user_id, "brand_name": brand_name}))

    update_brand_mapping(user_id, brand_name, "foursquare", fsq_user.fsq_id, access_token)

    return fsq_user
Esempio n. 4
0
def del_fb_page(user_id, brand_name):
    update_brand_mapping(user_id, brand_name, "facebook")
Esempio n. 5
0
def del_fsq_user(user_id, brand_name):
    update_brand_mapping(user_id, brand_name, "foursquare")
    FSQUser.collection().remove({"u_id": user_id, "brand_name": brand_name})
Esempio n. 6
0
def del_twitter_user(user_id, brand_name):
    update_brand_mapping(user_id, brand_name, "twitter")
    TWUser.collection().remove({"u_id": user_id, "brand_name": brand_name})