|
1 | 1 | function checkIfEnrolled() {
|
2 |
| - console.log("Requested tag check") |
| 2 | + console.log("[Hacktoberfest Tag Detector] Check started") |
| 3 | + let GITHUB_API_USERNAME; |
| 4 | + let GITHUB_API_TOKEN; |
| 5 | + |
| 6 | + try { |
| 7 | + GITHUB_API_USERNAME = browser.storage.sync.get("username"); |
| 8 | + GITHUB_API_TOKEN = browser.storage.sync.get("token"); |
| 9 | + } catch { |
| 10 | + alert("[Hacktoberfest Tag Detector] Please enter username/token in the settings page!"); |
| 11 | + browser.runtime.openSettingsPage(); |
| 12 | + return; |
| 13 | + } |
| 14 | + |
| 15 | + if (GITHUB_API_USERNAME.length < 1 || GITHUB_API_TOKEN.length < 1) { |
| 16 | + alert("[Hacktoberfest Tag Detector] Please enter username/token in the settings page!"); |
| 17 | + browser.runtime.openSettingsPage(); |
| 18 | + return; |
| 19 | + } |
| 20 | + |
3 | 21 | let headers = new Headers();
|
4 |
| - headers.append('Authorization', 'Basic ', btoa(`{GITHUB_API_USERNAME}:{GITHUB_API_TOKEN}`)) |
| 22 | + headers.append('Authorization', 'Basic ', btoa(`{GITHUB_API_USERNAME}:{GITHUB_API_TOKEN}`)); |
5 | 23 |
|
6 | 24 | const targetItems = document.querySelector("[data-tab-item='code-tab']").attributes['href'].value.split("/")
|
7 | 25 | const user = targetItems[1]
|
8 | 26 | const repo = targetItems[2]
|
9 |
| - console.log(targetItems); |
10 |
| - console.log(`Test user: ${user}, ${repo}`) |
11 |
| - console.log("TEST"); |
12 | 27 |
|
13 | 28 | fetch("https://api.github.com/repos/" + user + "/" + repo + "/labels", {
|
14 | 29 | method: 'GET',
|
15 | 30 | headers: headers
|
16 | 31 | })
|
17 | 32 | .then(response => response.json())
|
18 | 33 | .then(json => {
|
19 |
| - console.log(json); |
20 |
| - labelNames = json.map(i => i.name) |
21 |
| - const isHacktoberfestRepo = "hacktoberfest" in labelNames || "hacktoberfest-accepted" in labelNames |
| 34 | + const labelNames = json.map(i => i.name); |
| 35 | + const isHacktoberfestRepo = labelNames.includes("hacktoberfest") || labelNames.includes("hacktoberfest-accepted"); |
22 | 36 | document.body.style.border = isHacktoberfestRepo ? "5px solid green" : "5px solid blue";
|
23 | 37 | console.log(isHacktoberfestRepo ? "Hacktoberfest Tag Detector - Opted-in repository" : "Hacktoberfest Tag Detector - Not opted-in repository")
|
24 | 38 | })
|
25 | 39 | .catch(e => console.log(e))
|
26 | 40 |
|
27 | 41 | }
|
28 | 42 |
|
29 |
| -let isGithubProjectPage = false; |
30 |
| -try { |
31 |
| - isGithubProjectPage = document.querySelector(".application-main").children[0].attributes["itemtype"].value === "http://schema.org/SoftwareSourceCode" |
32 |
| -} catch (e) { |
33 |
| - isGitHubProjectPage = false; |
| 43 | + |
| 44 | +function isGithubProject() { |
| 45 | + try { |
| 46 | + if (document.querySelector(".application-main").children[0].attributes.itemtype.value === "http://schema.org/SoftwareSourceCode") |
| 47 | + return true; |
| 48 | + else |
| 49 | + return false; |
| 50 | + } catch (e) { |
| 51 | + return false; |
| 52 | + } |
34 | 53 | }
|
35 | 54 |
|
36 |
| -if (isGithubProjectPage) { |
37 |
| - console.log("Hacktoberfest Tag Detector - GitHub Project detected"); |
| 55 | + |
| 56 | +if (isGithubProject()) { |
| 57 | + console.log("[Hacktoberfest Tag Detector] GitHub Project detected"); |
38 | 58 | document.addEventListener("keyup", function (e) {
|
39 | 59 | var key = e.key || e.keyCode;
|
40 | 60 | if (key === 'h' || key === 'KeyH' || key === 72) {
|
41 | 61 | checkIfEnrolled()
|
42 | 62 | }
|
43 | 63 | });
|
44 | 64 | } else {
|
45 |
| - console.log("Hacktoberfest Tag Detector - GitHub Project not detected"); |
| 65 | + console.log("[Hacktoberfest Tag Detector] GitHub Project not detected"); |
46 | 66 | }
|
0 commit comments