Hay我需要将投票系统实施到模型中.
我从Mike DeSimone那里得到了一个巨大的帮助,使得这项工作成为首要任务,但我需要扩展他的工作.
这是我目前的代码
视图
def show_game(request):
game = Game.objects.get(pk=1)
discussions = game.gamediscussion_set.filter(reply_to=None)
d = {
'game':game,
'discussions':discussions
}
return render_to_response('show_game', d)
Run Code Online (Sandbox Code Playgroud)
模板
<ul>
{% for discussion in discussions %}
{{ discussion.html }}
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
模型
class GameDiscussion(models.Model):
game = models.ForeignKey(Game)
message = models.TextField()
reply_to = models.ForeignKey('self', related_name='replies', null=True, blank=True)
created_on = models.DateTimeField(blank=True, auto_now_add=True)
userUpVotes = models.ManyToManyField(User, blank=True, related_name='threadUpVotes')
userDownVotes = models.ManyToManyField(User, blank=True, related_name='threadDownVotes')
def html(self):
DiscussionTemplate = loader.get_template("inclusions/discussionTemplate")
return DiscussionTemplate.render(Context({
'discussion': self,
'replies': [reply.html() for reply in …Run Code Online (Sandbox Code Playgroud) Reddit使用时间衰减算法.这意味着排序顺序可能会发生变化.当用户转到第2页时,是否有一种机制可以阻止他们看到第1页上的帖子,但在他们翻页之前被降到第2页?它只是排序方法的一个可接受的缺陷吗?或者是为用户缓存的前几页,所以这不会发生?
旁注:据我所知,Digg不会遇到这个问题,但HackerNews和Reddit可以.
我正在尝试使用PRAW从最新到最旧的迭代某个subreddit的提交。我曾经这样做:
subreddit = reddit.subreddit('LandscapePhotography')
for submission in subreddit.submissions(None, time.time()):
print("Submission Title: {}".format(submission.title))
Run Code Online (Sandbox Code Playgroud)
但是,当我现在尝试执行此操作时,出现以下错误:
AttributeError: 'Subreddit' object has no attribute 'submissions'
通过查看文档,我似乎无法弄清楚该如何做。我能做的最好的事情是:
for submission in subreddit.new(limit=None):
print("Submission Title: {}".format(submission.title))
Run Code Online (Sandbox Code Playgroud)
但是,这仅限于前1000个提交。
有没有办法处理所有提交的内容,而不仅仅是前1000个?
最近我正在研究Reddit的算法,以确定什么使帖子成为"热门"主题,哪些内容适合reddit主页.
我正在阅读的文章在这里:http: //amix.dk/blog/post/19588
我注意到他们有数学逻辑,并创建了某种数学函数来确定帖子的热度/相关性.
在使用的公式中,每个数学组件来自何处以及如何使用它们?
谢谢!
- 巴克兹
编辑:只是为了澄清,我刚刚高中毕业并道歉,如果这个问题的答案似乎很明显.再次感谢!
尝试从 reddit 获取评论的 http 时遇到错误。这发生在各种 URL 上(并非所有 URL 都带有特殊字符),这就是其中之一。在一小时的时间范围内,可能会有 1000 个或更多的请求发送到 reddit.com 域。
hdr = {"User-Agent": "My Agent"}
try:
req = urllib2.Request("http://www.reddit.com/r/gaming/"
"comments/1bjuee/when_pok?©mon_was_good", headers=hdr)
htmlSource = urllib2.urlopen(req).read()
except Exception as inst:
print inst
Output>>HTTP Error 504: Gateway Time-out
Run Code Online (Sandbox Code Playgroud) 我正在开发一个reddit bot,需要知道哪个用户提交了评论.
根据PRAW API包装器文档,没有特定的方法来获取Comment对象的作者的用户名.理想情况下,我可以直接获取用户名.如果那不可能,有没有办法获取作者的全名,然后将其转换为用户名?
我正在尝试制作一个长时间运行的 Python 脚本,该脚本使用 PRAW 4.4.0 定期查询 Reddit 以获取新的提交/评论,首先我像这样初始化对象:
redditClient = praw.Reddit(
client_id=constants.REDDIT_CLIENT_ID,
client_secret=constants.REDDIT_CLIENT_SECRET,
user_agent=constants.REDDIT_USER_AGENT
)
Run Code Online (Sandbox Code Playgroud)
一段时间后,我收到以下错误:
请求错误('连接中止。',错误(104,'连接重置'))
我的猜测是发生这种情况是因为我保持连接打开,但我没有找到关闭它的方法。你能帮我弄清楚如何解决这个问题吗?
所以我在以下链接https://github.com/reddit-archive/reddit/wiki/OAuth2上阅读了文档.我正在尝试为我的应用程序检索访问令牌,该令牌只需要Application Only OAuth,因为它不需要用户插入其凭据.我已按照上述页面上的说明操作,但我无法检索访问令牌,而且我总是得到:
"{\"message\": \"Unauthorized\", \"error\": 401}"
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
#include "reddit.h"
#include <QtNetwork>
#include <QUuid>
const QString GRANT_URL = "https://oauth.reddit.com/grants/installed_client";
const QString ACCESS_TOKEN_URL = "https://www.reddit.com/api/v1/access_token";
const QByteArray CLIENT_IDENTIFIER = "MYID";
Reddit::Reddit(QObject *parent) : QObject(parent)
{
mDeviceID = "DO_NOT_TRACK_THIS_DEVICE";
mAuthHeader = "Basic " + CLIENT_IDENTIFIER.toBase64();
}
void Reddit::getAccessToken()
{
auto netManager = new QNetworkAccessManager(this);
QUrl requestUrl = buildAccessTokenUrl();
QNetworkRequest netRequest(requestUrl);
netRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
netRequest.setRawHeader("Authorization", mAuthHeader);
auto reply = netManager->post(netRequest, requestUrl.query(QUrl::FullyEncoded).toUtf8());
connect(reply, &QNetworkReply::finished, this, &Reddit::accessTokenRequestFinished);
}
void Reddit::accessTokenRequestFinished()
{
auto reply = …Run Code Online (Sandbox Code Playgroud) 我所做的一切都不起作用,而且我不断收到可笑的 CORS 错误和其他问题。我只想做一个正常的宣誓,通过浏览器登录用户。我想使用 snowrap,但我什至无法使用它,因为我需要刷新令牌。
\n\n我已经授权该应用程序并从 API 获取“代码”,然后我应该通过向https://www.reddit.com/api/v1/access_token发出发布请求来使用该代码。
\n\n但我每次都会收到 CORS 错误。
\n\nCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.reddit.com/api/v1/access_token. (Reason: missing token \xe2\x80\x98access-control-allow-headers\xe2\x80\x99 in CORS header \xe2\x80\x98Access-Control-Allow-Headers\xe2\x80\x99 from CORS preflight channel).\n\nCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.reddit.com/api/v1/access_token. (Reason: CORS request did not succeed).\nRun Code Online (Sandbox Code Playgroud)\n\n代码:
\n\nconst redirect_uri = \'https://EXAMPLE.com/reddit/\';\nconst client_id = \'xxxxxxxxxxxxx\';\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString); /*global URLSearchParams*/\nconst code …Run Code Online (Sandbox Code Playgroud)