sckott / discgolf

Discourse API R client
https://sckott.github.io/discgolf/
Other
6 stars 3 forks source link
discourse discourse-api r rstats

discgolf

cran checks R-check codecov.io rstudio mirror downloads cran version

discgolf is an R client for the Discourse API

Discourse API docs: https://docs.discourse.org/

discgolf package docs: https://sckott.github.io/discgolf/

Installation

CRAN version

install.packages("discgolf")

Development version

install.packages("remotes")
remotes::install_github("sckott/discgolf")
library("discgolf")

Authentication

The Discourse API is based on using a specific installation of Discourse, which requires the URL of the target Discourse forum, your username and an API key for that installation. Get those, set as option variables in .Rprofile (use discourse_url, discourse_username and discourse_api_key) or environment variables in .Renviron (use DISCOURSE_URL, DISCOURSE_USERNAME and DISCOURSE_API_KEY) or similar file (.bashrc, .zshrc, etc.).

Get latest topics

topics_latest()
topics_latest()$topic_list$topics[,c(1:5)]

Get new topics

topics_new()

Get topics by a specific user

topics_by("cboettig")

Get a single topic by id number

topic(8)
topic(8)$post_stream$posts[,c(1:5)]

Get a post

post_get(90)

Create post, create topic first

topic_create("The problem with blue skies", text = "just saying and all that")
post_create(topic_id = 13, text = "There isn't a problem!")

Wikify a post

post_wikify(x$post_stream$posts$id[4])

Search

dg_search(query = "poo")
dg_search(posts_count = 1)
dg_search(in_ = "posted")
dg_search(status = "open")

List a user

user('sckott')
user('cboettig')

List users

users_list('staff')
users_list('new')

Create a user

(x <- user_create("jane doe", "jane@doe.com", "jane_doe", "afafasfdasdf"))

Activate a user

user_activate(x$user_id)

Update email address

user_update_email('jane_doe', 'jane2@doe.com')

Update user name

user_update_username('jane_doe', 'jane_doe2')

Delete a user

user_delete(x$user_id)

Meta