Skip to content

Instantly share code, notes, and snippets.

@sonsongithub
Created April 16, 2015 07:16
Show Gist options
  • Save sonsongithub/25b8b0598c7201af5a60 to your computer and use it in GitHub Desktop.
Save sonsongithub/25b8b0598c7201af5a60 to your computer and use it in GitHub Desktop.
Ruby script to create github issue from reddit.com API list.
require 'octokit'
api_div_html_text = <<"EOS"
<div class="toc"><ul><li><strong>API methods</strong><span class="mode-selector"><a class="mode mode-current" href="/dev/api">by section</a><a class="mode " href="/dev/api/oauth">by oauth scope</a></span><ul><li><a href="#section_account" class="section">account</a><ul><li class="supports-oauth"><a href="#GET_api_v1_me">/api/v1/me</a></li><li class="supports-oauth"><a href="#GET_api_v1_me_blocked">/api/v1/me/blocked</a></li><li class="supports-oauth"><a href="#GET_api_v1_me_friends">/api/v1/me/friends</a></li><li class="supports-oauth"><a href="#GET_api_v1_me_karma">/api/v1/me/karma</a></li><li class="supports-oauth"><a href="#GET_api_v1_me_prefs">/api/v1/me/prefs</a></li><li class="supports-oauth"><a href="#GET_api_v1_me_trophies">/api/v1/me/trophies</a></li><li class="supports-oauth"><a href="#GET_prefs_blocked">/prefs/blocked</a></li><li class="supports-oauth"><a href="#GET_prefs_friends">/prefs/friends</a></li><li class="supports-oauth"><a href="#GET_prefs_{where}">/prefs/<em class="placeholder">where</em></a></li></ul></li><li><a href="#section_captcha" class="section">captcha</a><ul><li class="supports-oauth"><a href="#GET_api_needs_captcha">/api/needs_captcha</a></li><li class="supports-oauth"><a href="#POST_api_new_captcha">/api/new_captcha</a></li><li class="supports-oauth"><a href="#GET_captcha_{iden}">/captcha/<em class="placeholder">iden</em></a></li></ul></li><li><a href="#section_flair" class="section">flair</a><ul><li class="supports-oauth"><a href="#POST_api_clearflairtemplates">/api/clearflairtemplates</a></li><li class="supports-oauth"><a href="#POST_api_deleteflair">/api/deleteflair</a></li><li class="supports-oauth"><a href="#POST_api_deleteflairtemplate">/api/deleteflairtemplate</a></li><li class="supports-oauth"><a href="#POST_api_flair">/api/flair</a></li><li class="supports-oauth"><a href="#POST_api_flairconfig">/api/flairconfig</a></li><li class="supports-oauth"><a href="#POST_api_flaircsv">/api/flaircsv</a></li><li class="supports-oauth"><a href="#GET_api_flairlist">/api/flairlist</a></li><li class="supports-oauth"><a href="#POST_api_flairselector">/api/flairselector</a></li><li class="supports-oauth"><a href="#POST_api_flairtemplate">/api/flairtemplate</a></li><li class="supports-oauth"><a href="#POST_api_selectflair">/api/selectflair</a></li><li class="supports-oauth"><a href="#POST_api_setflairenabled">/api/setflairenabled</a></li></ul></li><li><a href="#section_gold" class="section">reddit gold</a><ul><li class="supports-oauth"><a href="#POST_api_v1_gold_gild_{fullname}">/api/v1/gold/gild/<em class="placeholder">fullname</em></a></li><li class="supports-oauth"><a href="#POST_api_v1_gold_give_{username}">/api/v1/gold/give/<em class="placeholder">username</em></a></li></ul></li><li><a href="#section_links_and_comments" class="section">links &amp; comments</a><ul><li class="supports-oauth"><a href="#POST_api_comment">/api/comment</a></li><li class="supports-oauth"><a href="#POST_api_del">/api/del</a></li><li class="supports-oauth"><a href="#POST_api_editusertext">/api/editusertext</a></li><li class="supports-oauth"><a href="#POST_api_hide">/api/hide</a></li><li class="supports-oauth"><a href="#GET_api_info">/api/info</a></li><li class="supports-oauth"><a href="#POST_api_marknsfw">/api/marknsfw</a></li><li class="supports-oauth"><a href="#GET_api_morechildren">/api/morechildren</a></li><li class="supports-oauth"><a href="#POST_api_report">/api/report</a></li><li class="supports-oauth"><a href="#POST_api_save">/api/save</a></li><li class="supports-oauth"><a href="#GET_api_saved_categories">/api/saved_categories</a></li><li class="supports-oauth"><a href="#POST_api_sendreplies">/api/sendreplies</a></li><li class="supports-oauth"><a href="#POST_api_set_contest_mode">/api/set_contest_mode</a></li><li class="supports-oauth"><a href="#POST_api_set_subreddit_sticky">/api/set_subreddit_sticky</a></li><li class="supports-oauth"><a href="#POST_api_store_visits">/api/store_visits</a></li><li class="supports-oauth"><a href="#POST_api_submit">/api/submit</a></li><li class="supports-oauth"><a href="#POST_api_unhide">/api/unhide</a></li><li class="supports-oauth"><a href="#POST_api_unmarknsfw">/api/unmarknsfw</a></li><li class="supports-oauth"><a href="#POST_api_unsave">/api/unsave</a></li><li class="supports-oauth"><a href="#POST_api_vote">/api/vote</a></li></ul></li><li><a href="#section_listings" class="section">listings</a><ul><li class="supports-oauth"><a href="#GET_by_id_{names}">/by_id/<em class="placeholder">names</em></a></li><li class="supports-oauth"><a href="#GET_comments_{article}">/comments/<em class="placeholder">article</em></a></li><li class="supports-oauth"><a href="#GET_controversial">/controversial</a></li><li class="supports-oauth"><a href="#GET_duplicates_{article}">/duplicates/<em class="placeholder">article</em></a></li><li class="supports-oauth"><a href="#GET_hot">/hot</a></li><li class="supports-oauth"><a href="#GET_new">/new</a></li><li class="supports-oauth"><a href="#GET_random">/random</a></li><li class="supports-oauth"><a href="#GET_related_{article}">/related/<em class="placeholder">article</em></a></li><li class="supports-oauth"><a href="#GET_top">/top</a></li><li class="supports-oauth"><a href="#GET_{sort}">/<em class="placeholder">sort</em></a></li></ul></li><li><a href="#section_live" class="section">live threads</a><ul><li class="supports-oauth"><a href="#POST_api_live_create">/api/live/create</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_accept_contributor_invite">/api/live/<em class="placeholder">thread</em>/accept_contributor_invite</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_close_thread">/api/live/<em class="placeholder">thread</em>/close_thread</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_delete_update">/api/live/<em class="placeholder">thread</em>/delete_update</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_edit">/api/live/<em class="placeholder">thread</em>/edit</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_invite_contributor">/api/live/<em class="placeholder">thread</em>/invite_contributor</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_leave_contributor">/api/live/<em class="placeholder">thread</em>/leave_contributor</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_report">/api/live/<em class="placeholder">thread</em>/report</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_rm_contributor">/api/live/<em class="placeholder">thread</em>/rm_contributor</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_rm_contributor_invite">/api/live/<em class="placeholder">thread</em>/rm_contributor_invite</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_set_contributor_permissions">/api/live/<em class="placeholder">thread</em>/set_contributor_permissions</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_strike_update">/api/live/<em class="placeholder">thread</em>/strike_update</a></li><li class="supports-oauth"><a href="#POST_api_live_{thread}_update">/api/live/<em class="placeholder">thread</em>/update</a></li><li class="supports-oauth"><a href="#GET_live_{thread}">/live/<em class="placeholder">thread</em></a></li><li class="supports-oauth"><a href="#GET_live_{thread}_about">/live/<em class="placeholder">thread</em>/about</a></li><li class="supports-oauth"><a href="#GET_live_{thread}_contributors">/live/<em class="placeholder">thread</em>/contributors</a></li><li class="supports-oauth"><a href="#GET_live_{thread}_discussions">/live/<em class="placeholder">thread</em>/discussions</a></li></ul></li><li><a href="#section_messages" class="section">private messages</a><ul><li class="supports-oauth"><a href="#POST_api_block">/api/block</a></li><li class="supports-oauth"><a href="#POST_api_compose">/api/compose</a></li><li class="supports-oauth"><a href="#POST_api_read_all_messages">/api/read_all_messages</a></li><li class="supports-oauth"><a href="#POST_api_read_message">/api/read_message</a></li><li class="supports-oauth"><a href="#POST_api_unblock_subreddit">/api/unblock_subreddit</a></li><li class="supports-oauth"><a href="#POST_api_unread_message">/api/unread_message</a></li><li class="supports-oauth"><a href="#GET_message_inbox">/message/inbox</a></li><li class="supports-oauth"><a href="#GET_message_sent">/message/sent</a></li><li class="supports-oauth"><a href="#GET_message_unread">/message/unread</a></li><li class="supports-oauth"><a href="#GET_message_{where}">/message/<em class="placeholder">where</em></a></li></ul></li><li><a href="#section_moderation" class="section">moderation</a><ul><li class="supports-oauth"><a href="#GET_about_edited">/about/edited</a></li><li class="supports-oauth"><a href="#GET_about_log">/about/log</a></li><li class="supports-oauth"><a href="#GET_about_modqueue">/about/modqueue</a></li><li class="supports-oauth"><a href="#GET_about_reports">/about/reports</a></li><li class="supports-oauth"><a href="#GET_about_spam">/about/spam</a></li><li class="supports-oauth"><a href="#GET_about_unmoderated">/about/unmoderated</a></li><li class="supports-oauth"><a href="#GET_about_{location}">/about/<em class="placeholder">location</em></a></li><li class="supports-oauth"><a href="#POST_api_accept_moderator_invite">/api/accept_moderator_invite</a></li><li class="supports-oauth"><a href="#POST_api_approve">/api/approve</a></li><li class="supports-oauth"><a href="#POST_api_distinguish">/api/distinguish</a></li><li class="supports-oauth"><a href="#POST_api_ignore_reports">/api/ignore_reports</a></li><li class="supports-oauth"><a href="#POST_api_leavecontributor">/api/leavecontributor</a></li><li class="supports-oauth"><a href="#POST_api_leavemoderator">/api/leavemoderator</a></li><li class="supports-oauth"><a href="#POST_api_remove">/api/remove</a></li><li class="supports-oauth"><a href="#POST_api_unignore_reports">/api/unignore_reports</a></li><li class="supports-oauth"><a href="#GET_stylesheet">/stylesheet</a></li></ul></li><li><a href="#section_multis" class="section">multis</a><ul><li class="supports-oauth"><a href="#DELETE_api_filter_{filterpath}">/api/filter/<em class="placeholder">filterpath</em></a></li><li class="supports-oauth"><a href="#DELETE_api_filter_{filterpath}_r_{srname}">/api/filter/<em class="placeholder">filterpath</em>/r/<em class="placeholder">srname</em></a></li><li class="supports-oauth"><a href="#POST_api_multi_copy">/api/multi/copy</a></li><li class="supports-oauth"><a href="#GET_api_multi_mine">/api/multi/mine</a></li><li class="supports-oauth"><a href="#POST_api_multi_rename">/api/multi/rename</a></li><li class="supports-oauth"><a href="#GET_api_multi_user_{username}">/api/multi/user/<em class="placeholder">username</em></a></li><li class="supports-oauth"><a href="#DELETE_api_multi_{multipath}">/api/multi/<em class="placeholder">multipath</em></a></li><li class="supports-oauth"><a href="#GET_api_multi_{multipath}_description">/api/multi/<em class="placeholder">multipath</em>/description</a></li><li class="supports-oauth"><a href="#DELETE_api_multi_{multipath}_r_{srname}">/api/multi/<em class="placeholder">multipath</em>/r/<em class="placeholder">srname</em></a></li></ul></li><li><a href="#section_search" class="section">search</a><ul><li class="supports-oauth"><a href="#GET_search">/search</a></li></ul></li><li><a href="#section_subreddits" class="section">subreddits</a><ul><li class="supports-oauth"><a href="#GET_about_banned">/about/banned</a></li><li class="supports-oauth"><a href="#GET_about_contributors">/about/contributors</a></li><li class="supports-oauth"><a href="#GET_about_moderators">/about/moderators</a></li><li class="supports-oauth"><a href="#GET_about_wikibanned">/about/wikibanned</a></li><li class="supports-oauth"><a href="#GET_about_wikicontributors">/about/wikicontributors</a></li><li class="supports-oauth"><a href="#GET_about_{where}">/about/<em class="placeholder">where</em></a></li><li class="supports-oauth"><a href="#POST_api_delete_sr_banner">/api/delete_sr_banner</a></li><li class="supports-oauth"><a href="#POST_api_delete_sr_header">/api/delete_sr_header</a></li><li class="supports-oauth"><a href="#POST_api_delete_sr_icon">/api/delete_sr_icon</a></li><li class="supports-oauth"><a href="#POST_api_delete_sr_img">/api/delete_sr_img</a></li><li class="supports-oauth"><a href="#GET_api_recommend_sr_{srnames}">/api/recommend/sr/<em class="placeholder">srnames</em></a></li><li class="supports-oauth"><a href="#POST_api_search_reddit_names">/api/search_reddit_names</a></li><li class="supports-oauth"><a href="#POST_api_site_admin">/api/site_admin</a></li><li class="supports-oauth"><a href="#GET_api_submit_text">/api/submit_text</a></li><li class="supports-oauth"><a href="#POST_api_subreddit_stylesheet">/api/subreddit_stylesheet</a></li><li class="supports-oauth"><a href="#GET_api_subreddits_by_topic">/api/subreddits_by_topic</a></li><li class="supports-oauth"><a href="#POST_api_subscribe">/api/subscribe</a></li><li class="supports-oauth"><a href="#POST_api_upload_sr_img">/api/upload_sr_img</a></li><li class="supports-oauth"><a href="#GET_r_{subreddit}_about">/r/<em class="placeholder">subreddit</em>/about</a></li><li class="supports-oauth"><a href="#GET_r_{subreddit}_about_edit">/r/<em class="placeholder">subreddit</em>/about/edit</a></li><li class="supports-oauth"><a href="#GET_sidebar">/sidebar</a></li><li class="supports-oauth"><a href="#GET_sticky">/sticky</a></li><li class="supports-oauth"><a href="#GET_subreddits_employee">/subreddits/employee</a></li><li class="supports-oauth"><a href="#GET_subreddits_gold">/subreddits/gold</a></li><li class="supports-oauth"><a href="#GET_subreddits_mine_contributor">/subreddits/mine/contributor</a></li><li class="supports-oauth"><a href="#GET_subreddits_mine_moderator">/subreddits/mine/moderator</a></li><li class="supports-oauth"><a href="#GET_subreddits_mine_subscriber">/subreddits/mine/subscriber</a></li><li class="supports-oauth"><a href="#GET_subreddits_mine_{where}">/subreddits/mine/<em class="placeholder">where</em></a></li><li class="supports-oauth"><a href="#GET_subreddits_new">/subreddits/new</a></li><li class="supports-oauth"><a href="#GET_subreddits_popular">/subreddits/popular</a></li><li class="supports-oauth"><a href="#GET_subreddits_search">/subreddits/search</a></li><li class="supports-oauth"><a href="#GET_subreddits_{where}">/subreddits/<em class="placeholder">where</em></a></li></ul></li><li><a href="#section_users" class="section">users</a><ul><li class="supports-oauth"><a href="#POST_api_friend">/api/friend</a></li><li class="supports-oauth"><a href="#POST_api_setpermissions">/api/setpermissions</a></li><li class="supports-oauth"><a href="#POST_api_unfriend">/api/unfriend</a></li><li class=""><a href="#GET_api_username_available">/api/username_available</a></li><li class="supports-oauth"><a href="#DELETE_api_v1_me_friends_{id}">/api/v1/me/friends/<em class="placeholder">id</em></a></li><li class="supports-oauth"><a href="#GET_api_v1_me_notifications">/api/v1/me/notifications</a></li><li class="supports-oauth"><a href="#PATCH_api_v1_me_notifications_{id}">/api/v1/me/notifications/<em class="placeholder">id</em></a></li><li class="supports-oauth"><a href="#GET_api_v1_user_{id}_trophies">/api/v1/user/<em class="placeholder">id</em>/trophies</a></li><li class="supports-oauth"><a href="#GET_user_{username}_about">/user/<em class="placeholder">username</em>/about</a></li><li class="supports-oauth"><a href="#GET_user_{username}_comments">/user/<em class="placeholder">username</em>/comments</a></li><li class="supports-oauth"><a href="#GET_user_{username}_disliked">/user/<em class="placeholder">username</em>/disliked</a></li><li class="supports-oauth"><a href="#GET_user_{username}_gilded">/user/<em class="placeholder">username</em>/gilded</a></li><li class="supports-oauth"><a href="#GET_user_{username}_hidden">/user/<em class="placeholder">username</em>/hidden</a></li><li class="supports-oauth"><a href="#GET_user_{username}_liked">/user/<em class="placeholder">username</em>/liked</a></li><li class="supports-oauth"><a href="#GET_user_{username}_overview">/user/<em class="placeholder">username</em>/overview</a></li><li class="supports-oauth"><a href="#GET_user_{username}_saved">/user/<em class="placeholder">username</em>/saved</a></li><li class="supports-oauth"><a href="#GET_user_{username}_submitted">/user/<em class="placeholder">username</em>/submitted</a></li><li class="supports-oauth"><a href="#GET_user_{username}_{where}">/user/<em class="placeholder">username</em>/<em class="placeholder">where</em></a></li></ul></li><li><a href="#section_wiki" class="section">wiki</a><ul><li class="supports-oauth"><a href="#POST_api_wiki_alloweditor_add">/api/wiki/alloweditor/add</a></li><li class="supports-oauth"><a href="#POST_api_wiki_alloweditor_del">/api/wiki/alloweditor/del</a></li><li class="supports-oauth"><a href="#POST_api_wiki_alloweditor_{act}">/api/wiki/alloweditor/<em class="placeholder">act</em></a></li><li class="supports-oauth"><a href="#POST_api_wiki_edit">/api/wiki/edit</a></li><li class="supports-oauth"><a href="#POST_api_wiki_hide">/api/wiki/hide</a></li><li class="supports-oauth"><a href="#POST_api_wiki_revert">/api/wiki/revert</a></li><li class="supports-oauth"><a href="#GET_wiki_discussions_{page}">/wiki/discussions/<em class="placeholder">page</em></a></li><li class="supports-oauth"><a href="#GET_wiki_pages">/wiki/pages</a></li><li class="supports-oauth"><a href="#GET_wiki_revisions">/wiki/revisions</a></li><li class="supports-oauth"><a href="#GET_wiki_revisions_{page}">/wiki/revisions/<em class="placeholder">page</em></a></li><li class="supports-oauth"><a href="#GET_wiki_settings_{page}">/wiki/settings/<em class="placeholder">page</em></a></li><li class="supports-oauth"><a href="#GET_wiki_{page}">/wiki/<em class="placeholder">page</em></a></li></ul></li></ul></li></ul></div>
EOS
v1 = [
"/api/v1/me",
"/api/comment",
"/api/hide",
"/api/info",
"/api/marknsfw",
"/api/report",
"/api/save",
"/api/submit",
"/api/unhide",
"/api/unsave",
"/api/vote",
"/by_id/names",
"/comments/article",
"/controversial",
"/duplicates/article",
"/hot",
"/new",
"/random",
"/related/article",
"/top",
"/sort",
"/api/compose",
"/api/read_all_messages",
"/api/read_message",
"/api/unread_message",
"/message/inbox",
"/message/sent",
"/message/unread",
"/message/where",
"/search",
"/api/search_reddit_names",
"/api/submit_text",
"/api/subscribe",
"/sticky",
"/subreddits/mine/contributor",
"/subreddits/mine/moderator",
"/subreddits/mine/subscriber",
"/subreddits/mine/where",
"/subreddits/new",
"/subreddits/popular",
"/subreddits/search",
"/subreddits/where",
"/user/username/about",
"/user/username/comments",
"/user/username/disliked",
"/user/username/gilded",
"/user/username/hidden",
"/user/username/liked",
"/user/username/overview",
"/user/username/saved",
"/user/username/submitted",
"/user/username/where"
]
a = api_div_html_text.scan(/<a href=\"(#.+?)\".*?>(\/.+?)<\/a>/)
client = Octokit::Client.new(:access_token => "")
a.each{|element|
api = element[1].gsub(/<.+?>/,"")
link = "https://www.reddit.com/dev/api" + element[0].gsub(/<.+?>/,"")
if v1.index(api)
puts api, "v1", link
client.create_issue("sonsongithub/reddift", api, link, {:milestone=>1, :labels=>"Not implemented"})
else
puts api, "v2", link
client.create_issue("sonsongithub/reddift", api, link, {:milestone=>2, :labels=>"Not implemented"})
end
sleep(2)
}
puts a.length
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment