mirror of
https://github.com/elisspace/AskAssist.git
synced 2026-08-29 15:33:47 +00:00
first commit
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Noxid86
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
2
README.md
Normal file
2
README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# AskBcsAssistant
|
||||
A small chrome plugin for managing a work slack
|
||||
BIN
assets/.DS_Store
vendored
Normal file
BIN
assets/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
assets/icons/icon128.png
Normal file
BIN
assets/icons/icon128.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
BIN
assets/icons/icon16.png
Normal file
BIN
assets/icons/icon16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/icons/icon48.png
Normal file
BIN
assets/icons/icon48.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
assets/images/gear.png
Normal file
BIN
assets/images/gear.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/sounds/alert0.mp3
Normal file
BIN
assets/sounds/alert0.mp3
Normal file
Binary file not shown.
BIN
assets/sounds/alert1.mp3
Normal file
BIN
assets/sounds/alert1.mp3
Normal file
Binary file not shown.
BIN
assets/sounds/alert2.mp3
Normal file
BIN
assets/sounds/alert2.mp3
Normal file
Binary file not shown.
26
manifest.json
Normal file
26
manifest.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "AskBCS Assistant",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"icons": {
|
||||
"16": "./assets/icons/icon16.png",
|
||||
"48": "./assets/icons/icon48.png",
|
||||
"128": "./assets/icons/icon128.png" },
|
||||
"background": {
|
||||
"scripts": ["script_background.js"]
|
||||
},
|
||||
"web_accessible_resources": [
|
||||
"./assets/alert0.mp3",
|
||||
"./assets/alert1.mp3",
|
||||
"./assets/alert2.mp3",
|
||||
"toolbar.html"
|
||||
],
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["https://app.slack.com/client/TLXH0JYKB/*"],
|
||||
"js": ["script_foreground.js"],
|
||||
"css": ["styles.css"]
|
||||
}
|
||||
],
|
||||
"manifest_version": 2
|
||||
}
|
||||
40
script_background.js
Normal file
40
script_background.js
Normal file
@@ -0,0 +1,40 @@
|
||||
// ALERT TIMER
|
||||
// time between alerts is controlled by config.alert.frequency
|
||||
let time=0;
|
||||
let timer = setInterval(()=>{
|
||||
time++
|
||||
},1000);
|
||||
|
||||
chrome.runtime.onMessage.addListener((request, sender, sendResponse)=>{
|
||||
console.log(request);
|
||||
flag = request.message.flag;
|
||||
console.log(flag)
|
||||
switch (flag) {
|
||||
case "alert":
|
||||
handleAlert(request);
|
||||
case "get":
|
||||
handleGet(request, sendResponse);
|
||||
}
|
||||
sendResponse("This is a mo'fuckin response")
|
||||
})
|
||||
|
||||
function handleAlert({message}){
|
||||
console.log('handling alert')
|
||||
alert = new Audio(chrome.runtime.getURL(`./assets/sounds/alert${message.option.sound}.mp3`));
|
||||
if(
|
||||
alert &&
|
||||
message.option.frequency > 0 &&
|
||||
time>message.option.frequency
|
||||
){alert.play()}
|
||||
}
|
||||
|
||||
function handleGet({message}, sendResponse){
|
||||
console.log('handling get');
|
||||
const file = chrome.runtime.getURL('./toolbar.html');
|
||||
fetch(file)
|
||||
.then((res) => {
|
||||
console.log("RESPIGGITY SPONSE!")
|
||||
console.log(res);
|
||||
sendResponse("biggy");
|
||||
}) //assuming file contains json
|
||||
}
|
||||
64
script_foreground.js
Normal file
64
script_foreground.js
Normal file
@@ -0,0 +1,64 @@
|
||||
let config = {
|
||||
speed: 5000,
|
||||
alert: {
|
||||
sound:1,
|
||||
frequency:1
|
||||
},
|
||||
watch: true
|
||||
}
|
||||
|
||||
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){
|
||||
console.log('message recieved','---------');
|
||||
console.log(message, sender, sendResponse);
|
||||
});
|
||||
|
||||
function appendTool(html){
|
||||
chrome.runtime.sendMessage({message:{flag:"get", option:"toolbar.html"}})
|
||||
|
||||
|
||||
/* ADD HTML BUTTONS */
|
||||
var header = document.querySelector('.p-ia__view_header__spacer');
|
||||
header.innerHTML = "<select class='cusBut' id='alert_select'>ALERT</select><div class='cusBut' id='start-timer'>START</div><div class='cusBut' id='stop-timer'>STOP</div><div class='cusBut' id='options'></div>";
|
||||
var start = document.querySelector('#start-timer');
|
||||
var stop = document.querySelector('#stop-timer');
|
||||
var alert = document.querySelector('#alert');
|
||||
var options = document.querySelector('#options');
|
||||
var timer;
|
||||
|
||||
|
||||
start.addEventListener('click', function(){
|
||||
start.style.display = 'none';
|
||||
config.watch = true;
|
||||
stop.style.display = 'inline-block';
|
||||
console.log('clicking Refresh every '+config.speed+' milliseconds');
|
||||
timer = setInterval(function(){
|
||||
var refresh_btn = document.querySelectorAll('[data-qa-action-id="refresh-queue"]')[0];
|
||||
if(refresh_btn){refresh_btn.click()};
|
||||
if(newQuestion()){
|
||||
chrome.runtime.sendMessage({message:{flag:"alert", option:config.alert}});
|
||||
config.watch = false;
|
||||
};
|
||||
}, config.speed);
|
||||
return timer;
|
||||
})
|
||||
|
||||
stop.addEventListener('click', function(){
|
||||
stop.style.display = 'none';
|
||||
start.style.display = 'inline-block';
|
||||
clearInterval(timer);
|
||||
|
||||
})
|
||||
|
||||
chrome.runtime.sendMessage({message:{flag:"alert", option:config.alert}});
|
||||
}
|
||||
|
||||
function newQuestion(){
|
||||
let search = document.body.innerHTML.search('<b data-stringify-type="bold">AVAILABLE QUESTIONS</b>');
|
||||
if(search!==-1){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('load', appendTool)
|
||||
23
styles.css
Normal file
23
styles.css
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
.cusBut {
|
||||
border-radius: 5px;
|
||||
line-height: 1.6;
|
||||
border: 2px solid #dddddd;
|
||||
width: 75px;
|
||||
height: 30px;
|
||||
margin: 1rem;
|
||||
float: right;
|
||||
text-align: center;
|
||||
color:white;
|
||||
}
|
||||
#start-timer {
|
||||
background-color: #91d68b;
|
||||
}
|
||||
#stop-timer {
|
||||
background-color: #E70002;
|
||||
display:none;
|
||||
}
|
||||
#alert {
|
||||
display: none;
|
||||
background-color: #6abdd7;
|
||||
}
|
||||
4
toolbar.html
Normal file
4
toolbar.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<select class='cusBut' id='alert_select'>ALERT</select>
|
||||
<div class='cusBut' id='start-timer'>START</div>
|
||||
<div class='cusBut' id='stop-timer'>STOP</div>
|
||||
<div class='cusBut' id='options'></div>
|
||||
Reference in New Issue
Block a user