Пример #1
0
    def get(self, request, feed_id):
        if self.is_malice_user(feed_id):
            return JsonResponse({
                'status': 'error',
                'msg': u'你的请求有误,查询失败',
            })

        feed_oid = get_oid(feed_id)
        user_feed = UserFeed2.objects(
            feed=feed_oid,
            is_deleted=False,
        ).first()

        if not (user_feed and self.feed_expire_status(user_feed.feed)):
            return JsonResponse({'status': 'ok', 'msg': u'订阅未过期,不需要重置'})
        feed_expire_time = after7day()
        Feed2.objects(id=feed_oid).update(
            set__feed_expire_time=feed_expire_time)
        Feed.objects.filter(feed_obj_id=feed_id).update(
            feed_expire_time=feed_expire_time)
        CeleryUtils.user_feed_task(feed_id)

        return JsonResponse({
            'status': 'ok',
            'msg': u'设置成功',
        })
Пример #2
0
    def set_feed_time(self, feed_id):
        now = datetime.datetime.now()
        feed_oid = get_oid(feed_id)
        feed_expire_time = after7day()

        Feed2.objects(id=feed_oid).update(
            set__last_click_time=now,
            set__feed_expire_time=feed_expire_time,
        )
        Feed.objects.filter(feed_obj_id=str(feed_id)).update(
            last_click_time=now,
            feed_expire_time=feed_expire_time,
        )
        return True
Пример #3
0
    def add_email_data(self, feed_oid, resume_oids):
        if not resume_oids:
            return False

        feed = Feed2.objects(id=feed_oid)[0]
        email = feed.username
        pub_admin = self.request.user.username

        email_feed = EmailFeedData.objects(
            feed=feed_oid,
            is_send=False,
        ).first()

        if email_feed:
            EmailFeedData.objects(
                feed=feed_oid,
                is_send=False,
            ).update(
                set__pub_admin=pub_admin,
                add_to_set__resumes=resume_oids,
            )
        else:
            email_feed = EmailFeedData(
                email=email,
                pub_admin=pub_admin,
                feed=feed_oid,
                resumes=resume_oids,
            )
        email_feed.save()
        return True
def main():
    today = get_today()
    tomorrow = get_tomommow()

    expire_feeds = Feed2.objects(
        feed_expire_time__gte=today,
        feed_expire_time__lt=tomorrow,
        feed_type=1,
    )

    for feed in expire_feeds:
        if is_deleted_feed(feed):
            continue

        email = feed.username
        subject = get_email_subject(feed)
        message = render_to_string(
            'email-template/activate_tips.html',
            {'feed': feed}
        )

        result = asyn_bat_mail(
            email,
            subject,
            message,
        )
        if result.get('status') == 'success':
            print '%s send email success' % email
        else:
            print '%s send email error, result %s' % (email, result)
Пример #5
0
 def make_mongo_feed_expire(cls, feed, expire_time):
     feed_oid = get_oid(feed.feed_obj_id)
     mongo_feed = Feed2.objects(id=feed_oid).first()
     mongo_feed.expire_time = expire_time
     UserFeed2.objects.filter(
         feed=mongo_feed, ).update(set__expire_time=expire_time)
     mongo_feed.save()
     return True
Пример #6
0
 def feed_not_expire(self, feed_oid):
     now = datetime.datetime.now()
     feed = Feed2.objects(
         id=feed_oid,
         username=self.request.user.username,
         expire_time__gt=now,
     )
     return True if feed else False
Пример #7
0
 def make_mongo_feed_expire(cls, feed, expire_time):
     feed_oid = get_oid(feed.feed_obj_id)
     mongo_feed = Feed2.objects(id=feed_oid).first()
     mongo_feed.expire_time = expire_time
     UserFeed2.objects.filter(
         feed=mongo_feed,
     ).update(
         set__expire_time=expire_time
     )
     mongo_feed.save()
     return True
Пример #8
0
def main():
    mongo_feeds = Feed2.objects(__raw__={
        'title': {
            '$ne': ''
        },
        'feed_type': 1,
        'deleted': False,
    })

    for mf in mongo_feeds:
        title = mf.title
        if not title:
            continue
        sid = str(mf.id)
        Feed.objects.filter(feed_obj_id=sid).update(title=title)
        print title, sid, 'update success'
def get_feed_data(send_user):

    username = send_user.user.username
    weixin_openid = send_user.openid

    user_pub_feeds = EmailFeedData.objects(
        email=username,
        is_send=False,
    ).select_related()

    total_num = 0
    keyword_list = []
    feed_id = None
    for pub_feed in user_pub_feeds:
        feed_id = pub_feed.feed.id

        feed = Feed2.objects(id=feed_id, deleted=False).first()
        if not feed:
            continue

        resumes_count = len(pub_feed.resumes)
        total_num += resumes_count

        keywords = feed.title if feed.title else feed.keywords
        if total_num > 1 or len(user_pub_feeds) > 1:
            keywords = '{0}({1})'.format(
                keywords,
                resumes_count
            )

        keyword_list.append(keywords.replace(u',', ','))

    keyword_list = ', '.join(keyword_list).split(',')
    if len(keyword_list) > 3:
        keyword_list[3] = '...'
    keywords = ','.join(keyword_list[:4])

    feed_data = {}
    feed_data['openid'] = weixin_openid
    feed_data['username'] = username
    feed_data['reco_num'] = 0
    feed_data['feed_id'] = str(feed_id)
    feed_data['title'] = keywords
    feed_data['reco_num'] = total_num
    feed_data['display_time'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")

    return feed_data
Пример #10
0
    def add_pub_data(self, feed_oid, resume_oids, display_time):
        if not resume_oids:
            return False

        today = get_today()
        tomorrow = get_tomommow()

        feed = Feed2.objects(id=feed_oid)[0]
        email = feed.username
        pub_admin = self.request.user.username

        pub_feed = PubFeedData.objects(
            feed=feed_oid,
            pub_time__gte=today,
            pub_time__lt=tomorrow,
        ).first()
        if pub_feed:
            if display_time == tomorrow:
                update_kwargs = {
                    'set__display_time': tomorrow,
                }
            else:
                update_kwargs = {}

            PubFeedData.objects(
                feed=feed_oid,
                pub_time__gte=today,
                pub_time__lt=tomorrow,
            ).update(set__pub_admin=pub_admin,
                     add_to_set__resumes=resume_oids,
                     **update_kwargs)
        else:
            pub_feed = PubFeedData(
                email=email,
                pub_admin=pub_admin,
                feed=feed_oid,
                resumes=resume_oids,
                pub_time=datetime.datetime.now(),
                display_time=display_time,
            )
        pub_feed.save()
        return True
Пример #11
0
    def create_mongo_feed(self, feed_pkg):
        mongo_feed = Feed2()
        mongo_feed._data = deepcopy(self.data)
        mongo_feed.username = self.user.username
        mongo_feed.deleted = False
        mongo_feed.remarks = []
        mongo_feed.ignored = False
        mongo_feed.feed_type = 1
        mongo_feed.display = True
        mongo_feed.add_time = datetime.datetime.now()
        mongo_feed.feed_expire_time = after7day()
        mongo_feed.expire_time = feed_pkg.feed_end_time

        mongo_feed.job_domain = [i.category for i in self.data['job_domain']]
        mongo_feed.job_welfare = self.data['job_welfare'].split(
            ',') if self.data['job_welfare'] else []
        mongo_feed.company_prefer = [
            i.name for i in self.data['company_prefer']
        ]
        return mongo_feed
def main():
    feeds = Feed2.objects()

    for feed in feeds:
        add_update_cache(feed)
def main():
    feeds = Feed2.objects()

    for feed in feeds:
        add_update_cache(feed)
Пример #14
0
def main():
    feeds = Feed2.objects(deleted=False)

    for feed in feeds:
        convert2pub_data(feed)
Пример #15
0
def get_email_data(pub_feed):
    after_tomorrow = get_tomommow() + datetime.timedelta(days=1)

    username = pub_feed.email
    last_send_info = EmailSendInfo.objects(username=username).first()

    if last_send_info:
        send_frequency = last_send_info.sendFrequency
        last_send_date = last_send_info.lastSendDate
        need_send = (
            send_frequency
            and last_send_date + datetime.timedelta(days=send_frequency) <= after_tomorrow
        )
    else:
        user = User.objects.filter(username=username)[0]
        last_send_info = EmailSendInfo(
            user=user.id,
            username=username,
        )
        need_send = True

    if not need_send:
        return False

    user_pub_feeds = EmailFeedData.objects(
        email=username,
        is_send=False,
    ).select_related()

    if not user_pub_feeds:
        return False

    feed_info_list = []
    total_num = 0
    keyword_list = []

    for pub_feed in user_pub_feeds:
        feed_id = pub_feed.feed.id
        feed = Feed2.objects(id=feed_id, deleted=False).first()
        if not feed:
            continue
        keywords = feed.title if feed.title else feed.keywords
        keyword_list.append(keywords.replace(u',', ','))
        resume_num = len(pub_feed.resumes)

        feed.feed_resumes = get_display_resumes(feed_id, pub_feed.resumes)
        feed.feed_result_num = resume_num
        feed.token = get_email_token(username, feed_id)

        total_num += resume_num
        feed_info_list.append(feed)

    keyword_list = ','.join(keyword_list).split(',')
    if len(keyword_list) > 5:
        keyword_list[4] = '...'
    keywords = ','.join(keyword_list[:5])
    subject = u'聘宝为你推荐人才-%s' % keywords

    return {
        'username': username,
        'subject': subject,
        'feed_info_list': feed_info_list,
        'total_num': total_num,
        'email_send_info': last_send_info,
    }
Пример #16
0
    def renewal_feed(self, feed_oid):
        feed_id = str(feed_oid)
        user = self.request.user
        now = datetime.datetime.now()

        user_charge_pkg = UserChargePackage.objects.filter(
            user=user,
            feed_end_time__gte=now,
            pay_status='finished',
            rest_feed__gt=0,
            pkg_source=1,
        )[0]
        mongo_feed = Feed2.objects(id=feed_oid).first()
        mysql_feed = get_object_or_none(
            Feed,
            feed_obj_id=feed_id,
        )
        old_mongo_user_feed = UserFeed2.objects(
            feed=mongo_feed,
            username=user.username,
            is_deleted=False,
        ).first()

        expire_time = user_charge_pkg.feed_end_time

        mongo_feed.expire_time = expire_time
        mysql_feed.expire_time = expire_time

        mysql_user_feed = UserFeed(
            feed=mysql_feed,
            user=user,
            user_charge_pkg=user_charge_pkg,
            add_time=now,
            expire_time=expire_time,
        )

        mongo_user_feed = UserFeed2(
            username=user.username,
            feed=mongo_feed,
            expire_time=expire_time,
            read_id_list=old_mongo_user_feed.read_id_list,
            read_count=old_mongo_user_feed.read_count,
        )

        with transaction.atomic():
            result = UserChargePackage.objects.filter(
                id=user_charge_pkg.id,
                rest_feed__gt=0,
            ).update(rest_feed=F('rest_feed') - 1)

            if result:
                UserFeed2.objects(
                    feed=mongo_feed,
                    is_deleted=False,
                    username=user.username,
                ).update(set__is_deleted=True)

                mongo_feed.save()
                mongo_user_feed.save()

                UserFeed.objects.filter(
                    feed=mysql_feed,
                    is_deleted=False,
                    user=user,
                ).update(is_deleted=True)

                mysql_feed.save()
                mysql_user_feed.save()

        return True
Пример #17
0
def main():
    feeds = Feed2.objects(deleted=False)

    for feed in feeds:
        convert2pub_data(feed)