Пример #1
0
def check_new_rss(rss_id):
    rss = Rss.objects.get(id=rss_id)
    feed_list = scrap_rss(rss.link, 0)
    for feed in feed_list:
        feed['rss'] = rss
        feed_item = Feed(**feed)
        feed_item.save()
Пример #2
0
    def setUpClass(cls):
        """
        Create user, rss and feed for tests
        :return:
        """
        super().setUpClass()
        data = {
            'email': '*****@*****.**',
            'password': '******'
        }
        user = User.register_user(email=data['email'], password=data['password'])
        user.confirm_email()
        user.is_staff = True
        user.is_superuser = True
        user.save()

        cls.header = {'HTTP_AUTHORIZATION': f'JWT {user.generate_token()}'}

        varzesh3_data = {
            'title': 'Varzesh3',
            'link': 'https://www.varzesh3.com/rss/all'
        }
        rss = Rss(**varzesh3_data)
        rss.save()

        feed_data = {
            'title': 'some title',
            'link': 'some link',
            'published': 1613298529,
            'description': 'some description',
            'rss': rss,
        }
        feed = Feed(**feed_data)
        feed.save()
Пример #3
0
def addFeeds(request):
    #authentications
    username = None
    if request.user.is_authenticated():
        username = request.user.username
    else:  #If user is not authenticated,return corresponding api error code:
        newData = {
            'status':
            401,  #bad credential
            'media type':
            'application/json',
            'exception':
            'credential failed. Please check your username and password'
        }
        return render(request, 'feed/addFeed_response.html.html',
                      {'data': json.dumps(newData)})

    if request.method == 'GET':  #display for brower api
        return render(request, 'feed/addFeed.html', {'username': username})
    elif request.method == 'POST':
        try:  #avoid all misleading operation exception
            data = json.loads(
                request.POST.get('content'))  # change into json format
            url = data['url']
            name = data['name']

            #check feed name is in the db: duplicate feed name is not allowed
            if Feed.objects.filter(name=name):
                newData = {
                    'status': 400,
                    'exception': 'Duplicated:Feed is existed'
                }
                return render(request, 'feed/addFeed_response.html',
                              {'data': json.dumps(newData)})

            #get user name
            userid = User.objects.get(username=username)

            # save db
            feedEntry = Feed(url=url, name=name, creator=userid)
            feedEntry.save()

            newData = {
                'status': 200,
                'url': url,
                'name': name,
                'action': 'add feed',
                'media type': 'application/json',
            }
        except:

            newData = {
                'status':
                400,
                'exception':
                'wrong json format/[url] and [name] is a must in the messgae body',
            }
        #process feed adding
        return render(request, 'feed/addFeed_response.html',
                      {'data': json.dumps(newData)})
Пример #4
0
def plan(request):
    act = Activity()
    act.participants = selectUser(request.user)
    act.num_participants = 2
    act.save()
    for u in act.participants:
        feed = Feed(user=u, content=act)
        feed.save()
    return HttpResponse("ok")
Пример #5
0
def check_rss_every_hour():
    for rss in Rss.objects.filter(is_active=True):
        last_time = rss.feed_set.first()
        last_time = last_time.published if last_time else 0
        feed_list = scrap_rss(rss.link, last_time)
        for feed in feed_list:
            feed['rss'] = rss
            feed_item = Feed(**feed)
            feed_item.save()
Пример #6
0
def addFeeds(request):
	#authentications
	username= None
	if request.user.is_authenticated():
		username = request.user.username
	else: #If user is not authenticated,return corresponding api error code: 
		newData = {
			'status': 401, #bad credential
			'media type':'application/json',
			'exception': 'credential failed. Please check your username and password'
			}
		return render(request,'feed/addFeed_response.html.html',{'data':json.dumps(newData)})


	
	if request.method == 'GET': #display for brower api
		return render(request,'feed/addFeed.html',{'username':username})
	elif request.method == 'POST':
		try:#avoid all misleading operation exception
			data = json.loads(request.POST.get('content')) # change into json format
			url = data['url']
			name = data['name']

			#check feed name is in the db: duplicate feed name is not allowed
			if  Feed.objects.filter(name =name):
				newData = {'status':400, 'exception':'Duplicated:Feed is existed'}
				return render(request,'feed/addFeed_response.html',{'data':json.dumps(newData)})
			
			#get user name 
			userid = User.objects.get(username = username)

			# save db
			feedEntry = Feed(url = url, name=name, creator=userid)
			feedEntry.save()



			newData = {
			'status': 200,
			'url': url,
			'name':name,
			'action':'add feed',
			'media type':'application/json',
			}
		except :

			newData = {
				'status':400,
				'exception':'wrong json format/[url] and [name] is a must in the messgae body',
			}
		#process feed adding
		return render(request,'feed/addFeed_response.html',{'data':json.dumps(newData)})
Пример #7
0
def edit_collection(request, slug):
    collection = get_object_or_404(Collection, slug=slug)
    if request.method == 'POST':
        feeds = request.POST.get('feeds')
        if not feeds:
            url = reverse('edit_collection', kwargs={'slug': collection.slug})
            return redirect(url)
        for feed_url in feeds.splitlines():
            feed_obj = Feed()
            feed_obj.url = feed_url
            feed_obj.save()
            feed_obj.collections.add(collection)
            feed_obj.save()
            feed_obj.update_info()
        redirect_url = reverse('view_collection', kwargs={'slug': collection.slug})
        return redirect(redirect_url)
    elif request.method == 'GET':
        return render(request, 'feed/edit_collection.html')
Пример #8
0
def create_mysql_feed(mongo_feed, user):
    feed_id = str(mongo_feed.id)
    mysql_feed_query = Feed.objects.filter(feed_obj_id=feed_id)

    if mysql_feed_query:
        mysql_feed = mysql_feed_query
    else:
        mysql_feed = Feed(
            keywords=mongo_feed.keywords,
            talent_level=mongo_feed.talent_level,
            expect_area=mongo_feed.expect_area,
            job_desc=mongo_feed.job_desc,
            salary_min=mongo_feed.salary_min,
            salary_max=mongo_feed.salary_max,
            feed_type=mongo_feed.feed_type,
            job_welfare=','.join(mongo_feed.job_welfare)
            if mongo_feed.job_welfare else '',
            language=mongo_feed.language,
            degree=mongo_feed.degree,
            major=mongo_feed.major,
            job_type=mongo_feed.job_type,
            user=user,
            expire_time=mongo_feed.expire_time,
            feed_expire_time=mongo_feed.feed_expire_time,
            feed_obj_id=str(mongo_feed.id),
        )
    job_domain = [
        get_object_or_none(
            CompanyCategory,
            category=domain,
        ) for domain in mongo_feed.job_domain
    ]
    prefer = [
        get_object_or_none(
            CompanyCategoryPrefer,
            name=name,
        ) for name in mongo_feed.company_prefer
    ]
    mysql_feed.save()
    mysql_feed.job_domain.add(*job_domain)
    mysql_feed.company_prefer.add(*prefer)
    mysql_feed.save()
    return mysql_feed
Пример #9
0
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if not form.is_valid():
            return render(request, 'user/signup.html', {'form': form})
        else:
            username = form.cleaned_data.get('username')
            email = form.cleaned_data.get('email')
            password = form.cleaned_data.get('password')
            User.objects.create_user(username=username,
                                     password=password,
                                     email=email)
            user = authenticate(username=username, password=password)
            login(request, user)
            welcome_post = u'{0} has joined the network.'.format(
                user.username, user.username)
            feed = Feed(user=user, post=welcome_post)
            feed.save()
            return redirect('/')
    else:
        return render(request, 'user/signup.html', {'form': SignUpForm()})
Пример #10
0
 def add_rss(self, params, url):
     feed = Feed.objects.filter(url=url).first()
     if feed:
         f2u = Feed2User.objects.filter(
             owner_feed=feed, owner_user_id=self.get_meid()).first()
         if f2u:
             raise Exception('订阅地址已添加')
     else:
         feed = Feed(url=url)
         feed_data = get_feed(url)
         dic2obj(feed_data, ['title', 'subtitle'], feed)
         feed.save()
         Post.create_by_entries(feed.id, feed_data.get('entries'))
     Feed2User.objects.create(owner_user_id=self.get_meid(),
                              owner_feed=feed)
     return {
         'id': feed.id,
         'title': feed.title,
         'subtitle': feed.subtitle,
         'url': url,
     }
Пример #11
0
    def do_task(self, task_code):

        if task_code == 'commit_customization':
            feed = Feed(
                user=self.user,
                deleted=False,
            )
            feed = feed.save()
            return True

#        if task_code == 'lookup_resume':
#            request = HttpRequest()
#            request.user = self.user
#            self.do_resume_read_task(request)

        if task_code == 'collect_resume':
            watch_record = UserWatchResume(
                user=self.user,
                resume_id='567cd2bd563310078dda3db9',
                feed_id='522db684fb6dec1d505249f9',
                add_time=datetime.datetime.now(),
                type=1,
            )
            watch_record = watch_record.save()
            return True

        if task_code == 'download_resume':
            buy_record = ResumeBuyRecord(
                user=self.user,
                resume_id='',
                resume_url='',
                status='LookUp'
            )
            buy_record = buy_record.save()
            return True

        if task_code == 'mark_resume':
            buy_record = ResumeBuyRecord.objects.all()
            buy_record = buy_record[0]
            mark_record = DownloadResumeMark(
                buy_record=buy_record,
                mark_time=datetime.datetime.now()
            )
            mark_record = mark_record.save()
            return True

#        if task_code == 'feedback_resume':
#            result = self.c.post()
#            self.assertEqual(result.status_code, 200)

        if task_code == 'buy_package':
            order = UserOrder.objects.all()
            order = order[0]
            order.order_status = 'paid'
            order.order_type = 1
            order = order.save()
            return True

        if task_code == 'send_company_card':
            send_record = SendCompanyCard(send_user=self.user)
            send_record.save()
            return True

        if task_code == 'mutual_recruitment':
            upload_record = UploadResume(user=self.user)
            upload_record.save()
            return True

        if task_code == 'user_portrait':
            questionnaire_record = QuestionnaireResult(user=self.user)
            questionnaire_record.save()
            return True
Пример #12
0
    def do_task(self, task_code):

        if task_code == 'commit_customization':
            feed = Feed(
                user=self.user,
                deleted=False,
            )
            feed = feed.save()
            return True

#        if task_code == 'lookup_resume':
#            request = HttpRequest()
#            request.user = self.user
#            self.do_resume_read_task(request)

        if task_code == 'collect_resume':
            watch_record = UserWatchResume(
                user=self.user,
                resume_id='567cd2bd563310078dda3db9',
                feed_id='522db684fb6dec1d505249f9',
                add_time=datetime.datetime.now(),
                type=1,
            )
            watch_record = watch_record.save()
            return True

        if task_code == 'download_resume':
            buy_record = ResumeBuyRecord(user=self.user,
                                         resume_id='',
                                         resume_url='',
                                         status='LookUp')
            buy_record = buy_record.save()
            return True

        if task_code == 'mark_resume':
            buy_record = ResumeBuyRecord.objects.all()
            buy_record = buy_record[0]
            mark_record = DownloadResumeMark(buy_record=buy_record,
                                             mark_time=datetime.datetime.now())
            mark_record = mark_record.save()
            return True

#        if task_code == 'feedback_resume':
#            result = self.c.post()
#            self.assertEqual(result.status_code, 200)

        if task_code == 'buy_package':
            order = UserOrder.objects.all()
            order = order[0]
            order.order_status = 'paid'
            order.order_type = 1
            order = order.save()
            return True

        if task_code == 'send_company_card':
            send_record = SendCompanyCard(send_user=self.user)
            send_record.save()
            return True

        if task_code == 'mutual_recruitment':
            upload_record = UploadResume(user=self.user)
            upload_record.save()
            return True

        if task_code == 'user_portrait':
            questionnaire_record = QuestionnaireResult(user=self.user)
            questionnaire_record.save()
            return True