Falls du Math.pow noch nicht kennst wäre das wohl der effizientere weg derartiges zu lösen

Math.pow(2, 3)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow

...zur Antwort

Erstell im selben ordner ein file mit dem namen jsconfig.json und füg das hinzu:

{
 "compilerOptions": {
  "checkJs": true
 }
}

Eventuell musst du danach deinen TypeScript Server neustarten damit der das mitbekomment -> CTRL + SHIFT + P -> TypeScript: Restart TS Server während du das JS aktiv hast

...zur Antwort
Wie kann ich mehrere Promises mit einer Funktion 'thennen'?

Die wichtigsten Proxy-Seiten für SOCKS4 und SOCKS5 Proxies haben umgestellt und lassen die Proxies jetzt nicht mehr einfach direkt auslesen. Man muss auf einen Doenload-Link klicken, der über eine Google Drive Weiterleitung erst eine Zip-Datei herunterlädt, in der u.a. eine Textdatei mit den Proxies ist. Das hat dazu geführt, dass alle möglichen Proxy-Scraper nutzlos geworden sind, weil keiner damit umgehen kann.

Ich schreibe gerade einen neuen und habe dabei ein Problem.

Ich habe die Haupt-Seiten in ein Array gespeichert, über dass ich mit einer Funktion Iiteriere (downloadSite), die immer ein Promise zurückgibt, wenn der Download abgeschlossen ist. Dieses Promise wird (für die 'root seiten') mit der Funktion _1 für jede Seite einmal 'gethent'

const http = require('http');
const https = require('https');
const unzip = require('unzip');
const fs = require('fs');
const os = require('os');
const proxySites = [ 'link1', 'link2', 'link3', 'link4' ];


function downloadSite(SITES, i=0) {


// Promise zurückgeben
return new Promise(function(resolve, reject){

    // erste Seite herunterladen
    http.get(SITES[i], res => {

        // Zwischenspeicher für den Quellcode
        var body = '';

        // Quellcode zwischenspeichern
        res.on('data', chunk => body += chunk)

        // Ende des Quellcodes erreicht
        .on('end', () => {

            // Promise 'fullfillen' mit der URL, dem Quellcode und der nächsten Promise
            resolve({
                url: SITES[i],
                body: body,
                next: ++i < SITES.length ? downloadSite(i, SITES) : null
            })
        });
    });
})

}


// Auf den Quellcode jeder 'root-Seite' ausfühen


function _1(data) {

// links speichern
var u = [];

// RegExp um Pfad der Links zu erkennen
if(data.body) data.body.replace(/\/\d{4}\/\d{2}\/\d{2}-\d{2}-\d{2}-.+_\d{1,3}\.html/g, function(path) {

    // Link zusammensetzen und zur liste hinzufügen
    u.push(data.url.split('/search')[0] + path);
});

// doppelte Einträge löschen
u = u.filter((item, pos) => u.indexOf(item) === pos);

// [hier werden bis zu 50 Unterseiten heruntergeladen]

// nächste Promise weitergeben
return data.next;

}


// Download starten


downloadSite(proxySites)


// erste Seite analysieren

.then(_1)


// zweite Seite analysieren

.then(_1)


// dritte Seite analysieren

.then(_1)

// vierte Seite analysieren

.then(_1)

Kennt hier jemand eine Möglichkeit, die ganzen .then(_1).then(_1).then(_1)... mit einer Anweisung aufzurufen (es sind bis zu 50)?

Würde mir echt weiterhelfen.

Liebe Grüße

Win7User

...zum Beitrag

in etwa so?

const request = require("request-promise")
const proxySites = [ 'link1', 'link2', 'link3', 'link4' ];

Promise.all(proxySites.map(site => request(site)))
  .then(res => {
    //iterates over each response
    res.forEach(body => {
      //here are all response bodies
    })
  })
  .catch(err => {
    //handle error
  })
...zur Antwort

es kommt sich stark darauf an ob es nur ein einfacher A Record ist oder ein SRV Record, für beides kannst du nslookup nutzen

via cmd um einen A Record zu bekommen nutzt du folgendes: nslookup <domain_dot_x>

um die Daten eines SRV Records zu bekommen funktioniert es folgendermaßen: nslookup -type=SRV _ts3._udp.<domain_dot_x> dieser löst dann eine oder mehrere Ports auf (falls ein SRV Record eingerichtet wurde) mit dementsprechenden Prioritäten und eine weitere Domain welche wiederrum wie im ersten beispiel aufgelöst werden kann

...zur Antwort

Sieht nach express aus http://expressjs.com/en/guide/routing.html

Serverseitig ein WebServer via NodeJS welcher wenn "/xy" aufgerufen wird die Datei xy.html zurückgesendet wird

d.h. wenn der WebServer auf "/xy" eine request bekommt wird die funktion aufgerufen, dabei ist "req" das Objekt des Senders der die Request abgeschickt hat

darunter fallen, IP, Header, Body usw

der 2. Parameter "res" ist die antwort die du ihm zurückschicken kannst

res.sendFile(...) sendet den inhalt einer datei

res.json(...) sendet json formatierten inhalt

res.status(404) sendet einen statuscode

...zur Antwort

0.9.8 ist veraltet, am besten du installierst dir die derzeitig aktuelle 0.13.37 mit dem https://sinusbot-installer.de/

warscheinlich hast du eine veraltete TeamSpeak Client Installation (3.0.x) und versuchst auf einen Server mit der Version 3.1.x zu verbinden, welches nicht möglich ist

...zur Antwort

je nach dem ob du erfahrung mit Linux hast kannst du dir um 2€ einen vServer mieten und dir da einen TeamSpeak Server Installieren, kostenlos bekommst du eine 32 Slot Lizenz für TeamSpeak

...zur Antwort

Wie Timi schon geschrieben hat ist es nicht möglich, da TeamSpeak den Backup verschlüsselt damit eben derartiges nicht möglich ist

...zur Antwort

Ich weis nicht ob du das warst oder sonst jemand aber das wurde vor ein paar tagen im Sinusbot Chat schon gefragt, mit der derzeitigen Bot Script API ist es NICHT möglich irgendwelche Talk Power zu vergeben

...zur Antwort

Ich biete derzeit ein PHP Script auf meiner Seite an multivitamin.wtf

Du benötigst dafür einen WebServer mit PHP 5.5 oder neuer

...zur Antwort

Log Level erhöhen in der config.ini (auf 11 Stellen sollte 3 drinnen stehen) und dann nochmal ein Bild hochladen

scheint als hättest du noch eine ältere Beta

https://forum.sinusbot.com/resources/categories/official-releases.1/

hier bekommst du die aktuellste Version, einfach drüber entpacken und dann ohne den xinit parametern starten sprich "screen -dmS sinusbot ./sinusbot"

...zur Antwort

Wenn es nur darum geht die Bandbreite zu errechnen ist das im Prinzip ganz einfach.

In den Channels kannst du die Audio Qualität einstellen, Standard wird Opus Voice genutzt, dieser benötigt bei der höchsten Qualitätsstufe ca 8kb/s Bandbreite

Das kannst du dir so vorstellen wenn 2 Leute in einem Channel sitzen dann 1 Person spricht und dadurch werden 8kb/s an die 2. Person gesendet

Sind nun 3 Personen im Channel und eine Spricht müssen 2 mal 8kb/s and die Clients gesendet werden dann hast du bereits 16kb/s

Wenn wir jetzt mal davon ausgehen dass 10 Personen in einem Channel sitzen und davon 3 Personen gleichzeitig senden dann heisst das es muss jeweils 3 mal an 9 Personen die Stimme übertragen werden dadurch ergibt sich 3x9x8kb/s = 216kb/s ~ 2 Mbit Upload

...zur Antwort

Es wäre sehr von Vorteil wenn du die Fehlermeldung ebenfalls hier posten könntest da meine Glaskugel derzeit leider bei der Reperatur ist und meine hellseherische Kräfte derzeit dafür nicht ausreichen

Ist der Server selber gehostet? Überprüf ob du Schreib/Lese rechte auf den Ordner files/virtualserver_x hast

Sind irgendwelche Limits im TeamSpeak eingestellt unter "Server Einstellungen"?

Ist der Filetransfer Port offen? 30033 TCP

...zur Antwort