Reddit URL 中的字母数字 ID 是什么?

发布于 2024-07-10 08:53:48 字数 506 浏览 16 评论 0原文

reddit 网址中的 7n5lu 是什么

http://www.reddit.com/r/reddit .com/comments/7n5lu/man_can_fly_if_you_watch_one_video_in_2

...它是如何生成的?

更新: @Gerald,我最初认为这是对 id 的一些混淆。 它只是将整数转换为更紧凑的表示形式。 我在想,为什么要这样做? 为什么不使用原始整数本身!!

>>> to36(4000)
'334'
>>> to36(4001)
'335'

What is the 7n5lu in the reddit URL

http://www.reddit.com/r/reddit.com/comments/7n5lu/man_can_fly_if_you_watch_one_video_in_2

...and how is it generated?

Update:
@Gerald, I initially thought this is some obfuscation of the id. It is just doing the conversion from integer to a more compact representation. I am thinking, why is this being done? why not use the original integer itself!!

>>> to36(4000)
'334'
>>> to36(4001)
'335'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

白首有我共你 2024-07-17 08:53:48

Reddit 源代码可用! 这是我

def to_base(q, alphabet):
    if q < 0: raise ValueError, "must supply a positive integer"
    l = len(alphabet)
    converted = []
    while q != 0:
        q, r = divmod(q, l)
        converted.insert(0, alphabet[r])
    return "".join(converted) or '0'

def to36(q):
    return to_base(q, '0123456789abcdefghijklmnopqrstuvwxyz')

在“Link”类下找到的用于生成该字符串的内容:以及其他地方:

@property
def _id36(self):
    return to36(self._id)

The reddit source code is available! Here is what I found for generating that string:

def to_base(q, alphabet):
    if q < 0: raise ValueError, "must supply a positive integer"
    l = len(alphabet)
    converted = []
    while q != 0:
        q, r = divmod(q, l)
        converted.insert(0, alphabet[r])
    return "".join(converted) or '0'

def to36(q):
    return to_base(q, '0123456789abcdefghijklmnopqrstuvwxyz')

and elsewhere, under the "Link" class:

@property
def _id36(self):
    return to36(self._id)
清风疏影 2024-07-17 08:53:48

这看起来像是线程的唯一 ID。 它很可能用于在数据库中查找线程。

That looks like a unique id for the thread. It's most likely used to find the thread in the database.

我只土不豪 2024-07-17 08:53:48

它是一个整数,以 36 为基数。id 是按顺序生成的。 例如,id 89 之后的注释是 id 8a 等。鉴于此,您不需要 URL 中的任何其他信息。

理论上,评论、帖子、消息、用户和 subreddits 可以具有相同的 ID 和计数。 您可以通过“全名”来区分它们,即事物的类型,一个下划线,然后一个下划线。

t1 是评论,t2 是用户,t3 是提交,t4 是消息,>t5 是一个 subreddit,t6 是一个奖项,ModAction 是一个主持人操作,ModmailConversation 是一个 modmail 对话,等等。

有关详细信息,请参阅API 文档

It is an integer, just in base 36. The id is generated sequentially. For example, the comment right after id 89 is id 8a, etc. Given this, you don't need any other information from the URL.

Comments, posts, messages, users, and subreddits can in theory have the same ID and count up. You can differentiate them by their "fullname" which is the type of thing, an underscore, and then an underscore.

t1 is a comment, t2 is a user, t3 is a submission, t4 is a message, t5 is a subreddit, t6 is an award, ModAction is a moderator action, ModmailConversation is a modmail conversation, etc.

See the API documentation for more information.

饮惑 2024-07-17 08:53:48

小话。

对于这个例子来说这还不够,但通常附加到列表

a = []
for i in range(NNN): a.append(i)
a.reverse()

确实比在头部插入更有效。

a = []
for i in range(NNN): a.insert(0,i)

Little remark.

It is not sufficient for this example but usually appending to lists

a = []
for i in range(NNN): a.append(i)
a.reverse()

really more efficient than inserting at head.

a = []
for i in range(NNN): a.insert(0,i)

.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文