mirror of
https://github.com/AMNatty/Mastodon-Circles.git
synced 2024-11-21 18:47:26 -07:00
Kurzes Zwischenspeichern vor async
This commit is contained in:
parent
83995ab0b8
commit
7199ce91b8
3 changed files with 55 additions and 17 deletions
|
@ -7,6 +7,8 @@ let connection_list = {};
|
|||
|
||||
// The main function called by the button-click
|
||||
function circle_main() {
|
||||
// Make Button invisible to prevent clicking
|
||||
document.getElementById("btn_create").style.display = "none";
|
||||
// Get handle from Textfield
|
||||
let mastodon_handle = document.getElementById("txt_mastodon_handle").value;
|
||||
userInfo = formatedUserHandle(mastodon_handle);
|
||||
|
@ -46,30 +48,46 @@ function getStatuses() {
|
|||
function processStatuses(statuses) {
|
||||
jsonStat = JSON.parse(statuses);
|
||||
|
||||
let request_limit = Math.min(30, jsonStat.length);
|
||||
let request_limit = 30;
|
||||
|
||||
console.log(request_limit)
|
||||
|
||||
for (var i=0; i<request_limit; i++) {
|
||||
//if (jsonStat[i]["reblog"] != null) {
|
||||
for (var i=0; i<jsonStat.length; i++) {
|
||||
if (!jsonStat[i]["reblog"]) {
|
||||
evaluateStatus(jsonStat[i]["id"], (jsonStat[i]["favourites_count"]>0), (jsonStat[i]["reblogs_count"]>0));
|
||||
//}
|
||||
request_limit--;
|
||||
if (request_limit<0) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get all Reblogs and Favs for a status update
|
||||
function evaluateStatus(id, faved, rebloged) {
|
||||
// Build the URL
|
||||
let url1 = "https://"+userInfo[2]+"/api/v1/statuses/"+id+"/reblogged_by";
|
||||
// Do the async http request
|
||||
if (rebloged) httpRequest(url1, addRepostConnections, 3);
|
||||
if (rebloged) httpRequest(url1, evalStatusInteractions, 1.3);
|
||||
|
||||
// Build the URL
|
||||
let url2 = "https://"+userInfo[2]+"/api/v1/statuses/"+id+"/favourited_by";
|
||||
let url2 = "https://"+userInfo[2]+"/api/v1/statuses/"+id+"/context";
|
||||
// Do the async http request
|
||||
if (faved) httpRequest(url2, addRepostConnections, 1);
|
||||
if (faved) httpRequest(url2, evalReplies, 1.1);
|
||||
|
||||
// Build the URL
|
||||
let url3 = "https://"+userInfo[2]+"/api/v1/statuses/"+id+"/favourited_by";
|
||||
// Do the async http request
|
||||
if (faved) httpRequest(url3, evalStatusInteractions, 1.0);
|
||||
}
|
||||
|
||||
function addRepostConnections(jsonString, plus) {
|
||||
// Evaluate the direct replies to tweets (no trees yet :( )
|
||||
function evalReplies(jsonString, plus) {
|
||||
let jsonArray = JSON.parse(jsonString)["descendants"];
|
||||
|
||||
for (var i=0; i<jsonArray.length; i++) {
|
||||
incConnectionValue(jsonArray[i]["account"], plus);
|
||||
}
|
||||
}
|
||||
|
||||
// Evaluate the Favs and Reposts
|
||||
function evalStatusInteractions(jsonString, plus) {
|
||||
let jsonArray = JSON.parse(jsonString);
|
||||
|
||||
for (var i=0; i<jsonArray.length; i++) {
|
||||
|
@ -105,23 +123,27 @@ function addNewConnection(jsonArray) {
|
|||
|
||||
|
||||
function showConnections() {
|
||||
// Remove own User from Dict
|
||||
if (userInfo[1] in connection_list) delete connection_list[userInfo[1]];
|
||||
|
||||
// Sort dict into Array items
|
||||
var items = Object.keys(connection_list).map(
|
||||
(key) => { return [key, connection_list[key]] });
|
||||
|
||||
items.sort(
|
||||
(first, second) => { return second[1]["conStrength"] - first[1]["conStrength"] }
|
||||
);
|
||||
|
||||
|
||||
// Render the Objects
|
||||
for (var i=0; i<items.length; i++) {
|
||||
//createUserObj(items[i][1])
|
||||
if (!items[i][1]["bot"]) createUserObj(items[i][1]);
|
||||
}
|
||||
document.getElementById("btn_create").style.display = "inline";
|
||||
}
|
||||
|
||||
function createUserObj(usr) {
|
||||
console.log(usr)
|
||||
let usrElement = document.createElement("div");
|
||||
usrElement.innerHTML = "<img src=\""+usr["pic"]+"\" width=\"20px\"><b>"+usr["name"]+"</b>\t"+usr["acct"];
|
||||
usrElement.innerHTML = "<img src=\""+usr["pic"]+"\" width=\"20px\">\t\t<b>"+usr["name"]+"</b>\t"+usr["acct"];
|
||||
document.getElementById("outDiv").appendChild(usrElement);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,14 +4,16 @@
|
|||
<meta charset="UTF-8">
|
||||
<title>Mastodon Circle Creator</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="stylesheet" href="">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<style>
|
||||
</style>
|
||||
<script src=""></script>
|
||||
<body>
|
||||
<script src="create-circle.js"></script>
|
||||
<input id="txt_mastodon_handle" type="text">
|
||||
<button onClick="circle_main()">Circle Erstellen</button>
|
||||
<h1>Mastodon Circle Creator (die unrunde Version)</h1>
|
||||
<!-- Logo? -->
|
||||
<input id="txt_mastodon_handle" type="text" placeholder="@sonnenbrandi@mieke.club" style="width: 300px;">
|
||||
<button id="btn_create" onClick="circle_main()">Circle Erstellen</button>
|
||||
<br><br><br>
|
||||
<div id="outDiv"></div>
|
||||
</body>
|
||||
|
|
14
style.css
Normal file
14
style.css
Normal file
|
@ -0,0 +1,14 @@
|
|||
body {
|
||||
background-color: #191b22;
|
||||
color: #d9e1e8;
|
||||
font-size: 20px;
|
||||
line-height: 200%;
|
||||
padding-left: 10%;
|
||||
padding-right: 10%;
|
||||
padding-top: 75px;
|
||||
}
|
||||
|
||||
input {
|
||||
|
||||
}
|
||||
|
Loading…
Reference in a new issue