Action
Get GitHub User Number
Posted by thechelsuk,
Last update
about 3 hours ago
About
Simply get a GitHub User’s ID Number from their username.
Result is appended to file.
Tip
If you find this useful and want to support me, you can tip at ko-fi.com/thechelsuk and check out Links for apps, tools, and more.
Steps
-
script
/* * @title: Get GitHub User ID Number * @author: thechelsuk * @version: 1.0.4 * @notes: Drafts App Script: Get GitHub User ID Number from username. */ var sourceText = editor.getSelectedText().trim(); if (!sourceText) { sourceText = draft.content.trim(); } var username = ""; var githubUrlMatch = sourceText.match( /https?:\/\/github\.com\/([A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?)/i, ); var mentionMatch = sourceText.match( /@([A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?)/, ); var lineMatch = sourceText.match( /^\s*([A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?)\s*$/m, ); if (githubUrlMatch) { username = githubUrlMatch[1]; } else if (mentionMatch) { username = mentionMatch[1]; } else if (lineMatch) { username = lineMatch[1]; } if (!username) { app.displayErrorMessage("No username found in selection or draft content."); context.fail(); } else if (!/^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,37}[a-zA-Z0-9])?$/.test(username)) { app.displayErrorMessage("Invalid GitHub username: " + username); context.fail(); } else { var url = "https://api.github.com/users/" + encodeURIComponent(username); var http = HTTP.create(); var response = null; try { response = http.request({ url: url, method: "GET", timeout: 10, headers: { Accept: "application/vnd.github+json", "User-Agent": "Drafts-App", }, }); } catch (e) { app.displayErrorMessage("Network error while fetching GitHub profile."); context.fail(); } if (!response || !response.success || !response.responseText) { app.displayErrorMessage( "Failed to fetch GitHub user: " + ((response && response.statusCode) || "network error"), ); context.fail(); } else { var data = null; var parseFailed = false; try { data = JSON.parse(response.responseText); } catch (e) { app.displayErrorMessage("GitHub returned unreadable user data."); context.fail(); parseFailed = true; } if (!parseFailed) { if (!data || !data.id) { app.displayErrorMessage("GitHub user not found: " + username); context.fail(); } else { var userId = String(data.id); var content = draft.content .replace(/^User ID: \d+\s*$/m, "") .trimEnd(); draft.content = content + "\nUser ID: " + userId; draft.update(); } } } }
Options
-
After Success Default Notification Info Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.