Wie kann ich das anders Umsetzen (Python 3)?

Hi also ich mach mir einen kleinen Sprachassistenten Bot ist nichts zum veröffentlichen oder so ich mach mir das halt um während dem Zocken mal sagen zu können spiel playlist ... usw. Speech to Text usw klappt alles Wunderbar nur das Music Spielen macht klitze bisschen Probleme. Ich will das "main.py" weiter zuhört nachdem ich subprocess.call() gemacht habe aber in dem script das ich damit augerufen habe ist so etwas wie time.sleep() damit die music weiter spielt.

Teil meiner Main.py:


if "spiel" in txt:
    if "playlist" in txt:
        if "1" in txt:
            say("Playlist 1 wird Wiedergegeben.")
            subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "play"])
            os.execv(sys.executable, ['python3'] + sys.argv)

if "pause" in txt:
    say("Musik wird Pausiert")
    subprocess.call(["C:\\Users\\Zensiert\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe", "playlist1.py", "pause"])

Und hier meine playlist1.py

import pygame
import sys, getopt

arguments = str(sys.argv)

pygame.init()

pygame.mixer.music.load('C:\\Users\\Zensiert\\IdeaProjects\\LibreOfficeSprachAssistent\\.idea\\songs\\playlist1\\streets.mp3')
if(sys.argv[1]== 'play'):
    pygame.mixer.music.play()

elif(sys.argv[1] == 'pause'):
    pygame.mixer.music.pause()

print(f"Arg Input      : {sys.argv[1]=}")

clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
    clock.tick(309)
    pygame.event.poll() 

Das Script spielt die Musik und es klappt auch alles aber ich kann halt erst wieder reden wenn ich 309 Sekunden (Wegen dem "clock.tick(309)") gewartet habe. Jemand eine Idee? Ich weiß alles nicht so gut erklärt sorry

PC, Computer, Windows, Programm, Sprache, programmieren, System, Bot, Informatik, Playlist, Python, debugging, Wiedergabe, Pygame, Sprachassistent, IntelliJ IDEA
Discord-Bot (Java, JDA) Befehl wird nicht ausgeführt?

Ich programmiere einen Discord-Bot mit Java. Um Befehle zu lesen, benutze ich einen Listener (der dem Builder hinzugefügt wurde) und ein Command-Manager-System.

Dies ist der Listener:

public class Listener extends ListenerAdapter {

[...]

@Override
public void onMessageReceived(MessageReceivedEvent event) {
String message = event.getMessage().getContentDisplay();
if (event.isFromType(ChannelType.TEXT)) {
TextChannel channel = event.getTextChannel();
if (message.startsWith(Bot.INSTANCE.prefix)) {
String[] args = message.substring(Bot.INSTANCE.prefix.length()).split(" ");
if (args.length > 0) {
if(!Bot.INSTANCE.getCmdMan().perform(args[0], event.getMember(), channel, event.getMessage())) {
// Kein Befehl entdeckt
}
}
}
}
}
}

Die getCmdMan()-Methode liefert den Command-Manager, der hier steht:

public class CommandManager {

public ConcurrentHashMap<String, ServerCommand> commands;

public CommandManager() {

this.commands = new ConcurrentHashMap<>();

[...]

this.commands.put("startGW", new StartGiveawayCommand());

[...]

}

public boolean perform(String command, Member m, TextChannel channel, Message message) {

ServerCommand cmd;

if ((cmd = this.commands.get(command.toLowerCase())) != null) {

cmd.performCommand(m, channel, message);

}

return false;

}

}

Alle Befehlsklassen erben (implements Klasse()) aus der Command-Klasse. Ich denke aber nicht, dass ich diese hier aufführen muss, da sie nur die Funktion, die in den Befehls-Klassen überschrieben wird, enthält. Die Befehls-Klassen sehen folgendermaßen aus: (ich nehme als Beispiel die StartGiveawayCommand-Klasse)

public class StartGiveawayCommand implements ServerCommand {

@Override

public void performCommand(Member m, TextChannel c, Message message) {

int index = 0;

System.out.println(index);

index++;

if(!m.hasPermission(Permission.ADMINISTRATOR)) {

message.delete().queue();

c.sendMessage(":x: Du hast nicht die Berechtigung, HanLink-Bot zu verwenden!").queue();

return;

}

[...]

}

}

Die System.out.println("");-Funktionen habe ich hinzugefügt nachdem der Befehl nicht ausgeführt wurde. In die Konsole kam auch kein Output.

Die anderen Befehle werden aber ausgeführt (z.B. !purge)

Was habe ich falsch gemacht? bzw. Was muss ich ändern?

programmieren, Java, Bot, jda, Discord, Discord Bot
Bot für Surebets?

Hallo zusammen,

ist es möglich, einen Bot die Surebets von verlinkter Seite lesen zu lassen und ihn die Wetten automatisch wetten zu lassen?

https://oddspedia.com/de/surebets

Nehmen wir für das Gedankenexperiment mal an, dass ein Konto bei jedem Wettanbieter existiert.

Die Anbieter es nicht registrieren, dass man nur Surebets wettet und damit ein Bann oder eine Reduzierung des Einsatzes ausgeschlossen ist.

In unserer Gedankenwelt keine zeitliche Verzögerung existiert, wodurch sofort nach Feststellung - oder noch besser, bereits bei Festellung einer Surebet direkt durch den Bot getwettet wird (beim Anbieter einloggen, Wette suchen, Wetteinsatz platzieren, Wette abgeben, Wette bestätigen - alles passiert zur gleichen Zeit).

Und alle weiteren Hürden, die sich in den Weg stellen würden, einfach nicht existieren.

Wir haben sozusagen den allerbesten und unrealistischsten Best Case gegeben :)

Zurück zur Frage - ist das möglich? Ein Bot / Programm, dass kontinuierlich die Seite scannt und sobald eine neue Surebet raus ist, dieser Bot entweder durchgehend bei den Konten eingeloggt ist oder sich direkt einloggt und die Wette platziert? Sagen wir mit einem immer fortwährenden Gesamteinsatz von 10 €uro pro Surebet.

Ich hoffe ich hab mich klar ausgedrückt und ich vermute, dass ein paar IT-Spezialisten mit Fantasie einer tollkühnen Antwort fähig sind :)

Hämmert mal in eure Tasten Mädels und Jungs und teile mit mir eure Gedankenexperimentfortsetzungen.

Computer, Geld, programmieren, Bot, Wetten, Gedankenexperimente

Meistgelesene Fragen zum Thema Bot