✨⭐ Repl Talk API for Python ⭐✨ (With documentation)
h
mat1 (2712)

Repl Talk API (unofficial)

Easily communicate with the GraphQL Repl Talk API with this project.
https://pypi.org/project/repltalk/


Features

  • Beautiful asynchronous goodness
  • Easy to use
  • Documentation
  • Also it uses the Repl.it GraphQL API so there's no web scraping going on here.
  • Allows logging in (for verified bots to prevent spammers)
  • The only Repl Talk API that works in Python
  • Implements pretty much every Repl Talk route
  • Made by mat™
  • Can be imported
  • Leave a comment if you want to request a feature!*

Examples

# Print the titles of the top Repl Talk posts
import asyncio
import repltalk


client = repltalk.Client()

async def main():
	top_posts = await client.boards.all.get_posts()
	for post in top_posts:
		print(post.title)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())
# Gets the amount of cycles for a user
import asyncio
import repltalk

client = repltalk.Client()

async def main():
	username = input('Enter a username\n> ')
	user = await client.get_user(username)
	print(f'{user.name} has {user.cycles} cycles')
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Leave a comment if you have an example!

API Reference


Client

class repltalk.Client()

  • coroutine login(username, password)
    Logs in to Repl.it with your username and password. Your bot must be verified in order to use this function.
  • coroutine get_post(post_id)
    Gets the post with that id.
    Returns Post
  • coroutine post_exists(post_id)
    Returns whether or not the post exists.
    Returns Bool
  • coroutine get_leaderboard(limit=30)
    Gets the top users from the Repl Talk leaderboard.
    Returns list of Users
  • coroutine get_all_comments()
    Gets all the recent comments from Repl Talk.
    *returns list of Comments
  • coroutine get_user(username)
    Gets the user with that username.
    returns User
  • boards
    See Board.

Board

class client.boards


  • all
    The All board on Repl Talk
  • share
    The Share board on Repl Talk
  • ask
    The Ask board on Repl Talk
  • announcements
    The Announcements board on Repl Talk
  • challenge
    The Challenge board on Repl Talk
  • learn
    The Learn board on Repl Talk

  • coroutine get_posts(sort='top', search='')
    Gets the most recent posts from that board.
    Sort is the sorting order (top|hot|new) and search is the search query.
    returns PostList

Post

  • id
    The post ID
  • title
    The post title
  • content
    The post content
  • board
    The board the post was made on.
  • votes
    The amount of upvotes the post has.
  • author
    The post author. Will be a User object.
  • datetime
    The time the post was created at.
  • url
    The post url in Repl Talk.
  • repl
    The repl attached to the post.
  • show_hosted
    Indicates if the post has a hosted repl linked to it.
  • is_announcement
    If the post is marked as an announcement.
  • can_edit
    Indicates if the user can edit the post. This will be False unless you created the post.
  • can_comment
    If the user can comment on the post.
  • can_vote
    Indicates if the user can upvote the post.
  • has_voted
    Indicates if the user has already voted on the post.
  • is_locked
    Indicates if the post is locked.
  • coroutine get_comments()
    Gets the comments on the post.
  • coroutine post_comment(content)
    Posts a comment on the post

Comment

  • id
    The post ID.
  • content
    The post body.
  • time_created
    The time the comment was created at.
  • can_edit
    Indicates if the user can edit the comment.
  • can_comment
    Whether or not the user can post a comment.
  • url
    The comment's url.
  • votes
    Gets the amount of upvotes the comment has.
  • can_vote
    Indicates if the user can vote on the comment.
  • has_voted
    Indicates if the user has already upvoted the post.
  • coroutine reply(content)
    Replies to the comment with the content

User

  • id
    The user ID. Pretty useless since you can't get the user from their id.
  • name
    The user's username.
  • avatar
    The user's avatar url
  • url
    The user's profile link
  • cycles
    The amount of cycles that user has
  • roles
    The roles the user has set on their profile.

PostList

Acts basically like a normal list

  • coroutine next()
    Gets the next page of posts

Make sure to upvote this post and leave a comment if you think this is cool!

-mat

You are viewing a single comment. View All
Tacoman500 (1)

You should add a vote method for comments, posts, and boards.

mat1 (2712)

@Tacoman500 it used to, but I removed it because I don't want people using upvote bots.