Skip to content
This repository has been archived by the owner on Nov 5, 2022. It is now read-only.

sckott/discgolf

Repository files navigation

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

  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.