Skip to content

Commit b37391c

Browse files
committed
set time intervals
1 parent 014e56f commit b37391c

File tree

7 files changed

+102
-87
lines changed

7 files changed

+102
-87
lines changed

background/authorize.js

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33
const REDIRECT_URL = browser.identity.getRedirectURL();
44
const CLIENT_ID = "12428";
55
const KEY = "f26RUH3uoCiokrEYNeDf9Q(("
6-
const SCOPES = ["read_inbox"];
6+
const SCOPES = ["read_inbox","private_info"];
77
const AUTH_URL =
88
`https://stackoverflow.com/oauth/dialog?client_id=${CLIENT_ID}&key=${KEY}&redirect_uri=${REDIRECT_URL}&scope=${encodeURIComponent(SCOPES.join(' '))}`;
9-
10-
11-
129
const VALIDATION_BASE_URL="https://api.stackexchange.com/2.2/";
1310

1411
function extractAccessToken(redirectUri) {
@@ -21,36 +18,30 @@ function extractAccessToken(redirectUri) {
2118

2219
function validate(redirectURL) {
2320
const accessToken = extractAccessToken(redirectURL);
24-
console.log(accessToken + " access")
21+
//console.log(accessToken + " access")
2522
if (!accessToken) {
2623
throw "Authorization failure";
2724
}
2825
const validationURL = `${VALIDATION_BASE_URL}access-tokens/${accessToken}?key=${KEY}`;
2926

30-
console.log(validationURL)
31-
const validationRequest = new Request(validationURL, {
32-
method: "GET"
33-
});
27+
//console.log(validationURL)
28+
return checkResponse(validationURL)
29+
30+
31+
}
3432

35-
function checkResponse(response) {
36-
return new Promise((resolve, reject) => {
37-
if (response.status != 200) {
38-
reject("Token validation error");
33+
function checkResponse(validationURL) {
34+
return axios.get(validationURL)
35+
.then(res => {
36+
// console.log(res.data.items[0].access_token)
37+
if (res.data.items && res.data.items.length > 0) {
38+
return Promise.resolve(res.data.items[0].access_token);
3939
}
40-
response.json().then((json) => {
41-
if (json.items) {
42-
resolve(accessToken);
43-
} else {
44-
reject("Token validation error");
45-
}
46-
});
47-
});
48-
}
4940

50-
return fetch(validationRequest).then(checkResponse);
41+
throw new Error("Access token expired");
42+
})
5143
}
5244

53-
5445
async function authorize() {
5546
return await browser.identity.launchWebAuthFlow({
5647
interactive: true,

background/axios.js

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

background/inboxInfo.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,22 @@ function unreadmessages(token){
1313
var url = INBOX_READ+`&access_token=${token}`
1414
console.log(url)
1515

16-
return new Promise((resolve,reject)=>{
17-
get(url, (msg1)=>{
18-
if(msg1.error_message){ resolve("Error: "+msg1.error_message)}
19-
console.log(msg1)
20-
let msg = JSON.parse(msg1)
21-
console.log(msg.items.length)
22-
if(totunread < msg.items.length ){
23-
notifyunread(msg.items.length)
24-
totunread = msg.items.length
25-
resolve(msg.items.length)
26-
}
27-
})
28-
})
16+
return axios.get(url).then(res=>{
17+
console.log(totunread+" "+res.data.items.length )
18+
console.log(res.data)
19+
if(totunread < res.data.items.length )
20+
{
21+
totunread = res.data.items.length
22+
console.log(totunread+" "+res.data.items.length )
23+
return Promise.resolve(res.data.items.length)
24+
}
25+
if(totunread == res.data.items.length ){
26+
console.log(totunread+" "+res.data.items.length )
27+
return Promise.resolve(-1)
28+
}
29+
throw new Error('Error occured While fetching inbox data')
30+
})
31+
2932
}
3033

3134

background/main.js

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,63 @@
11
/*main back to get th*/
22

33
var token
4-
var totunread = -1
5-
var notiunread = -1
4+
var totunread = 0
5+
var notiunread = 0
66

77
const INBOX_READ =
8-
`https://api.stackexchange.com/2.2/me/inbox/unread?page=1&pagesize=5&key=${KEY}&site=stackoverflow&filter=!0UscT51V)r-XK9Kg9bV54nqom`
8+
`https://api.stackexchange.com/2.2/me/inbox/unread?key=${KEY}&site=stackoverflow&filter=!0UscT51V)r-XJhlOHzduuQu)O`
99

1010
const NOTIFICATIONS =
11-
`https://api.stackexchange.com/2.2/me/notifications/unread?page=1&pagesize=2&site=stackoverflow&filter=!0UscT5320P8DSPTPhCF)1tNYL&key=${KEY}`
11+
`https://api.stackexchange.com/2.2/me/reputation?site=stackoverflow&key=${KEY}`
12+
13+
//error noti
14+
function notifyerror(error) {
15+
browser.notifications.create({
16+
"type": "basic",
17+
"iconUrl": browser.extension.getURL("icons/addon.png"),
18+
"title": "Error",
19+
"message": `${error}`,
20+
"items": [{title:"test1",message:"ffff"}]
21+
22+
23+
})
24+
}
1225

1326
//error log function
1427
function logError(error) {
1528
console.error(`Error: ${error}`);
29+
//notifyerror(error)
1630
}
1731

18-
function get(url, callback){
19-
var xmlHttp = new XMLHttpRequest();
20-
xmlHttp.onreadystatechange = function() {
21-
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
22-
callback(xmlHttp.responseText);
23-
}
24-
xmlHttp.open("GET", url, true); // true for asynchronous
25-
xmlHttp.send(null);
26-
}
2732

2833
browser.browserAction.onClicked.addListener(async function() {
2934
console.log("CLICKED")
3035
token = await getAccessToken()
3136
console.log("tok "+token)
32-
unreadnotificatons(token).catch(logError)
33-
unreadmessages(token).then((data)=>{console.log(data)}).catch(logError)
34-
37+
unreadnotificatons(token).then(notifynotiunread).catch(logError)
38+
unreadmessages(token).then(notifyunread).catch(logError)
39+
badge()
40+
startInterval()
3541
})
3642

37-
38-
39-
43+
function startInterval(){
44+
var interval = setInterval(function(){
45+
unreadnotificatons(token)
46+
.then((val)=>{
47+
if(val!=-1){notifynotiunread}})
48+
.catch(logError)
49+
unreadmessages(token)
50+
.then((val)=>{
51+
if(val!=-1){notifyunread}})
52+
.catch(logError)
53+
badge()
54+
},60000)}
55+
56+
function badge() {
57+
if((totunread+notiunread)>0)
58+
{
59+
browser.browserAction.setBadgeText({text: (totunread+notiunread).toString()});
60+
}
61+
}
4062

4163

background/notificationInfo.js

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,28 @@ function notifynotiunread(count) {
22
browser.notifications.create({
33
"type": "basic",
44
"iconUrl": browser.extension.getURL("icons/addon.png"),
5-
"title": "Notifications",
6-
"message": "You have "+count+" unread Notifications"
5+
"title": "Reputation Changes",
6+
"message": "You have "+count+" reputation change events"
7+
78
})
89
}
910

1011

1112
function unreadnotificatons(token){
1213
var url = NOTIFICATIONS+`&access_token=${token}`
13-
console.log(url)
1414

15-
return new Promise((resolve,reject)=>{
16-
get(url, (msg1)=>{
17-
console.log(msg1)
18-
let msg = JSON.parse(msg1)
19-
console.log(msg.items.length)
20-
if(notiunread < msg.items.length ){
21-
notifynotiunread(msg.items.length)
22-
notiunread = msg.items.length
23-
resolve(msg.items.length)
24-
}
25-
26-
})
27-
})
28-
15+
return axios.get(url).then(res=>{
16+
17+
if(notiunread < res.data.items.length )
18+
{ console.log(notiunread+" n "+res.data.items.length )
19+
notiunread = res.data.items.length
20+
return Promise.resolve(res.data.items.length)
21+
}
22+
if(notiunread == res.data.items.length ){
23+
console.log(notiunread+" n "+res.data.items.length )
24+
return Promise.resolve(-1)
25+
}
26+
throw new Error('Error occured While fetching notification data')
27+
})
2928
}
3029

content_script/stackzilla.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)