def tweetform_view(request): html = "tweetform.html" if request.method == "POST": form = TweetForm(request.POST) if form.is_valid(): data = form.cleaned_data newTweet = Tweet(tweetbody=data['tweetbody'], date_filed=data['date_filed'], author=request.user) newTweet.save() # This newTweet['tweetbody'] is reaching into db # if '@' in newTweet['tweetbody']: pattern = re.search("@[\w\d]+", newTweet.tweetbody) if pattern is not None: pattern = pattern.group(0)[1:] target_user = TwitterUser.objects.get(username=pattern) Notification.objects.create( target_user=target_user, tweet=newTweet, ) baseProfile = TwitterUser.objects.get(username=request.user) newTweet.twittuser.add(baseProfile) return HttpResponseRedirect(reverse("homepage")) form = TweetForm() return render(request, html, {"form": form})
def post_tweet_view(request): if request.user.is_authenticated: current_user = request.user notes = len( Notification.objects.filter(notify_user=current_user).filter( is_seen=False)) else: notes = 0 if request.method == "POST": form = PostTweetForm(request.POST) if form.is_valid(): data = form.cleaned_data new_tweet = Tweet( user_tweeted=current_user, content=data.get('content'), #date_and_time=data.get('date_and_time') ) new_tweet.save() # Either gets after "@" or returns false notify = read_reggie(data.get('content')) if notify: # Gets user being "@" @ by the username in the mention #note_user = MyTwitterUser.objects.get(username=notify) for name in notify: Notification.objects.create( # Attributes user notify_user=MyTwitterUser.objects.get(username=name), # Gets tweet obj tweet=new_tweet, is_seen=False) return HttpResponseRedirect(reverse('home')) form = PostTweetForm() return render(request, 'tweet_form.html', {'form': form, 'notes': notes})
def query_twitter_api(): """Query Elon's twitter for references to keywords.""" print("Query Initiating...") auth = tweepy.OAuthHandler( CONSUMER_KEY, CONSUMER_SECRET_KEY ) auth.set_access_token( KEY, SECRET_KEY ) api = tweepy.API(auth) twitter_status = api.user_timeline( id="elonmusk", count=1, tweet_mode="extended" )[0]._json tweet_text = twitter_status["full_text"] if re.search(r'\bbitcoin\b', tweet_text): obj = { "twitter_handle": "elonmusk", "created_at": twitter_status["created_at"], "text": tweet_text } print("Tweet mentioning bitcoin found") tweet = Tweet(**obj) tweet.save() else: print("No tweet mentioning bitcoin found")
def make_tweet(request): if not request.user.is_authenticated: return HttpResponseRedirect(reverse('auth:log_in')) if request.POST: tweet = Tweet(title=request.POST['title'], content=request.POST['content'], user=request.user) tweet.save() return HttpResponseRedirect( reverse('tweet:show_tweet', args=(tweet.id, ))) return render(request, 'tweet/make_tweet.html')
def create_tweet(request): if request.method=='POST': message=request.POST['message'] profile_obj=Profile.objects.get(user=request.user) t_obj=Tweet() t_obj.profile=profile_obj t_obj.message=message t_obj.save() return HttpResponseRedirect(reverse('index')) else: form=CreateTweet() return render(request,'tweet/create_tweet.html',{'form':form})
def add_tweet(request): """添加推文""" if request.method == 'POST': title = request.POST.get('title') content = request.POST.get('content') user_id = request.POST.get('user_id') t = Tweet() t.title = title t.content = content t.user_id = user_id t.read_num = gen_random_num() t.save() return JsonResponse({'code': 200, 'msg': 'success'})
def new_tweet_view(request): if request.method == 'POST': form = NewTweetForm(request.POST) if form.is_valid(): content = form.cleaned_data['content'] new_tweet = Tweet( content=content, composer=request.user ) new_tweet.save() find_mention_notifications(new_tweet) return HttpResponseRedirect( reverse('homepage') )
def v2_tweet(request): token_hash = request.GET.get('key') if not token_hash: return HttpResponse('you did not send any key') try: token = TokenV2.objects.get(key=token_hash) except TokenV2.DoesNotExist: return HttpResponse('invalid key!') user = token.user # make tweet with request.GET and user and save it title = request.GET.get('title') content = request.GET.get('content') tweet = Tweet(title=title, content=content, user=user) tweet.save() return HttpResponse(tweet.title + " -- was created successfully ")
def post(self, request): try: data = json.loads(request.body) tweet = Tweet(user_id=data["user_id"], user_content=data["user_content"]) tweet.save() getpk = Tweet.objects.filter(user_id=data["user_id"]).last().pk return JsonResponse( { "content_id": f"{getpk}", "message": "Tweet Success" }, safe=False, status=200) except KeyError: return JsonResponse({"message": "Tweet Failed"}, safe=False, status=200)
def feed(request): if request.method == 'POST': form = TweetForm(request.POST, request.FILES) if form.is_valid(): tweet = Tweet() tweet.content = form.cleaned_data['tweet'] tweet.image = form.cleaned_data.get('image') tweet.user = request.user tweet.save() form = TweetForm() else: form = TweetForm() tweets = Tweet.objects.order_by('-post_date') context = { 'tweets': tweets, 'form': form, 'user': request.user, } return render(request, "tweet/feed.html", context)
def create_tweet(user_id, mutter): tweet = Tweet(tweeted_by_id=user_id, mutter=mutter) tweet.save() return tweet
def post(self,request): tweet_input = json.loads(request.body) user_id = tweet_input['user_id'] tweet_content = tweet_input['tweet'] Tweet(tweet = tweet_content, user_id = User.objects.get(id=user_id)).save() return JsonResponse({ 'tweet_content': tweet_content })
def get_queryset(self): #expressão de busca enviada expression = self.request.query_params.get('search') if (expression): #codifica a expressão para o padrão utilizado na web search_word = requests.utils.quote(expression) API_KEY = '5MU3Vu3zXm6xn0XQuIZzg2Q1I' API_SECRET = 'huaphtigFjD0riKGuT9rZHig6RCCr0zR7eeBsNvZtldcXCYnQz' ACCESS_TOKEN = '27258579-r6APNk6Y1mracJWcdAln3C6NsC5hj9dZKG8G2f654' ACCESS_TOKEN_SECRET = 'ulF8lFGppaeqEoA7TS17IGAnCMYjsI8QinyGLTI8uCQHP' session = OAuth1Session(API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET) url = "https://api.twitter.com/1.1/search/tweets.json?lang=pt&q=" + search_word + "&count=30&tweet_mode=extended" response = session.get(url) tweets = json.loads(response.content.decode('utf-8')) #armazena os dados dos usuarios user_data = [] #armazena os tweets dos usuários para posterior classificação user_tweets = [] for t in tweets['statuses']: #converte a data para o timezone do Brasil d = datetime.strptime( t['created_at'], '%a %b %d %H:%M:%S %z %Y').replace( tzinfo=timezone.utc).astimezone( pytz.timezone('America/Sao_Paulo')).strftime( '%Y-%m-%d %H:%M:%S') data = { "data": d, "username": t['user']['screen_name'], "tweet_id": t['id'], "tweet": t['full_text'] } user_data.append(data) user_tweets.append(t['full_text']) #carrega o modelo gravado em arquivo text_clf = pickle.load( open(settings.MEDIA_ROOT + "/model.sav", 'rb')) #classifica os tweets predicted = text_clf.predict(user_tweets) #salva o termo de busca search = Search() search.expression = expression search.save() for x in range(len(predicted)): user_model = Tweet() user_model.user = user_data[x]['username'] user_model.tweet_date = user_data[x]['data'] user_model.tweet_id = user_data[x]['tweet_id'] user_model.tweet_text = user_data[x]['tweet'] user_model.classification = predicted[x] user_model.search = search user_model.save() return Tweet.objects.filter(search=search) elif (self.request.query_params.get('search_id')): search_id = self.request.query_params.get('search_id') return Tweet.objects.filter(search=search_id) else: return Tweet.objects.all()