Code – die besten Beiträge

Bashskript Problem?

Ich habe hier ein Bashskript, welches Dateien überwacht (noch nicht vollständig und absolut unoptimiert). Ich weiß, dass es Tools gibt, aber es ist ein Projekt für die Uni und deshalb ist Optimierung und Effizienz nicht wirklich wichtig. Ich möchte damit die Grundlagen des Shellscriptings einfach etwas lernen.

Das ist bisher das Script:

#!/bin/bash


echo "Das Skript wurde gestartet. Der Typ Ihres Betriebssystem ist "\"$OSTYPE\""."


# If-Abfrage, die das Betriebssystem erkennt und den Pfad zum überwachten Ordner oder Datei festlegt # HIER BITTE DIE PFADE ZUM ZU ÜBERWACHENDEN ORDNER EINTRAGEN   
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
    BASE_DIRECTORY=" " # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = Linux
elif [[ "$OSTYPE" == "darwin"* ]]; then
    BASE_DIRECTORY="/Users/name/Library/CloudStorage/GoogleDrive-email@gmail.com/Meine Ablage/Uni/TestOrdner" # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = MacOs
elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
    BASE_DIRECTORY="/g/Meine Ablage/Uni/TestOrdner" # Übergibt dem überwachten Ordner eine Variable, wenn Betriebssystem = Windows
else    
    echo "Das Betriebssystem ist unbekannt." # Wenn das Betriebssystem unbekannt ist, wird eine Fehlermeldung ausgegeben
    exit 1
fi


DIRECTORY="$BASE_DIRECTORY" # Pfad zum Ordner
FILE="$BASE_DIRECTORY/Datei.txt" # Pfad zur Datei   
FILE2="$BASE_DIRECTORY/Datei2.txt" # Pfad zur Datei2 


cd "$BASE_DIRECTORY" || {
    echo "Wechsel zu $BASE_DIRECTORY fehlgeschlagen!" # Wechselt in den TestOrdner oder gibt eine Fehlermeldung aus
    exit 1;
}



# Funktion, um zu überprüfen, ob Dateien gelöscht wurden
checkIfDeleted() {
    if [ ! -f "$FILE" ]; then 
        echo "Die Datei \"$(basename "$FILE")\" wurde gelöscht, umbenannt oder verschoben."
    elif [ ! -f "$FILE2" ]; then
        echo "Die Datei \"$(basename "$FILE2")\" wurde gelöscht, umbenannt oder verschoben."
    elif [ ! -d "$DIRECTORY" ]; then
        echo "Der Ordner \"$(basename "$DIRECTORY")\" wurde gelöscht, umbenannt oder verschoben."
    fi
}


# Speichert den "ursprünglichen" Hash-Wert der Dateien
ORIGINAL_HASH=$(md5 -q "$FILE")
ORIGINAL_HASH2=$(md5 -q "$FILE2")


checkIfEdited() {
    if [ ! -f "$FILE" ]; then # Wenn $FILE nicht existiert, dann wird das Skript hier beendet
    return
    fi


    if [ ! -f "$FILE2" ]; then # Wenn $FILE2 nicht existiert, dann wird das Skript hier beendet
    return
    fi


    if [ ! -d "$DIRECTORY" ]; then # Wenn $DIRECTORY nicht existiert, dann wird das Skript hier beendet
    return
    fi


    # Berechnet den aktuellen Hash-Wert der Dateien
    CURRENT_HASH=$(md5 -q "$FILE")
    CURRENT_HASH2=$(md5 -q "$FILE2")


    # Hash-Werte werden verglichen
    if [ "$CURRENT_HASH" != "$ORIGINAL_HASH" ]; then
        echo "Die Datei \"$(basename "$FILE")\" wurde bearbeitet."
        # Ursprünglicher Hash-Wert wird für zukünftige Überprüfungen aktualisiert
        ORIGINAL_HASH="$CURRENT_HASH"
    elif [ "$CURRENT_HASH2" != "$ORIGINAL_HASH2" ]; then
        echo "Die Datei \"$(basename "$FILE2")\" wurde bearbeitet."
        # Ursprünglicher Hash-Wert wird für zukünftige Überprüfungen aktualisiert
        ORIGINAL_HASH2="$CURRENT_HASH2"
    fi
}


while true; do # Endlosschleife, die die Funktionen "checkIfDeleted" und "checkIfEdited" alle 10 Sekunden ausführt
    checkIfDeleted
    checkIfEdited
    sleep 10
done

Ja, ich weiß, welche Probleme das Skript mit sich bringt, aber ich habe ein anderes Problem:

Wenn jemand das Skript nutzen möchte, muss er die Pfade seiner Dateien einfügen und sogar neue Variablen definieren.

Man könnte das doch so machen, dass das Skript die Liste des Ordners einliest und dann auf alle Dateien direkt zugreifen muss, ohne dass man sie in das Skript einfügen muss.

Also irgendwie mit dem Befehl "ls". Ich weiß aber nicht, wie ich das implementieren soll.

Kann mir wer helfen bitte?

Visual Basic, Linux, HTML, Webseite, VBA, Bash, Batch, cmd, Code, lua, MySQL, PHP, Programmiersprache, Python, Script, Python 3

Code Error Java?

public class Main {
public static void main(String[] args) {


    GUI gui = new GUI();
    
    }
    
   public static int fak (int n) {
        if (n == 0) {
            return 1;
        }
        return n * fak(n - 1);
    }
    
}

import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class GUI extends JFrame {
    JButton button = new JButton("Berechnen");
    JLabel label = new JLabel("Bitte geben Sie die Zahl ein: ");
    JTextField textfield = new JTextField(2);
    JOptionPane popup = new JOptionPane();
    JPanel panel = new JPanel();
    
    public GUI () {
        setSize(300, 300);
        setTitle("Fakultätsrechner");
        setLayout(new FlowLayout());
        setVisible(true);
        
        panel.add(textfield);
        panel.add(label);
        panel.add(button);
        add(panel);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);


        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String input = textfield.getText();
                    int number = Integer.parseInt(input);
                    int result = Main.fak(number);
                    JOptionPane.showMessageDialog(null, "Die Fakultät von " + number + " ist " + result);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(null, "Bitte geben Sie eine gültige Ganzzahl ein.");
                }
            }
        });
        
    }





}

Error: java.lang.ClassNotFoundException: Main

Aber wieso findet er denn die Main-Klasse nicht? Verstehe ich nicht.

App, Java, Minecraft, Array, Code, Eclipse, Minecraft Server, Programmiersprache, Swing, game-development, Bukkit, Spigot, Java Swing, Android Studio

Wie lernt man Python/Pandas schnell?

Hallo,

ich soll für die Uni Pandas in Python lernen. Nur ist es so, dass von der Uni kein Kurs dafür angeboten wird. Das heißt, ich muss es mir selbst beibringen.

Deshalb hätte ich ein paar Fragen: Ich habe keinerlei Erfahrung in Python. Ich habe zwar durch Java 1 etwas in die Programmierung hineingeschnuppert und Standardsachen wie if-Schleifen, Methoden und sowas gelernt, allerdings kenne ich weder die Syntax in Python noch sonst irgendetwas.

Jetzt das Problem: Am nächsten Donnerstag ist bereits das erste Praktikum, welches ich komischerweise in Mathe 2 habe (also im Kurs Mathe 2 haben wir als Praktikum Pandas, aber darum geht es nicht), sondern, ich soll bis nächste Woche Donnerstag Pandas lernen und auf Moodle steht, dass Sachen drankommen, wie Funktionen, Parameter, Schleifen, IF-Anweisungen, etc.. In Python programmieren kann.

Ich habe mir bereits Visual Studio Code heruntergeladen und eingerichtet, sodass ich an sich loslegen kann, aber ich kann halt keine Python-Syntax. Wie soll ich also Pandas machen?

Hättet ihr Tipps, Empfehlungen, Vorschläge, Videos, wie ich es schnell lernen kann?

Vielleicht gibt es ja unter euch auch Programmierer, die verstehen, was ich meine und mir Videos oder andere hilfreiche Sachen empfehlen können. Also ich brauche alles:

  • Wie fängt man in Python an?
  • Legt man einfach los oder muss man wie bei Java erst sowas machen wie "public static void main", um loszulegen?
  • Wie ist die Syntax?
  • Ist es auch am Ende mit ; oder mit was?
  • Parameter, erklärt, wie, warum, Klammern? Befehle? Am besten einfach wirklich alles dazu.

Meine Idee wäre jetzt einfach: Ich versuche mir durch YouTube, etc. Python-Grundlagen beizubringen und dann schnell Pandas zu testen und zu hoffen, dass es klappt.

Ich hoffe, ihr versteht, was ich meine und könnt mir helfen. Falls ihr Fragen habt, sagt gerne Bescheid. Ich bin über jede Hilfe dankbar.

Code, Programmiersprache, Python, Python 3

TikTok Upload-Bot Programmieren schlägt Fehl?

Ich arbeite aktuell an einem Upload-Bot für TikTok Studio (https://www.tiktok.com/tiktokstudio/upload), um mehrere Videos automatisiert über Selenium hochzuladen. Der Bot ist bereits sehr weit entwickelt und funktioniert in fast allen Punkten – jedoch scheitert er beim finalen Klick auf den „Beitrag“-Button, obwohl dieser optisch aktiv und rot sichtbar ist.

Was bisher funktioniert:

  • Login erfolgt automatisch via gespeicherten Cookies (cookies.pkl)
  • Upload-Seite wird geöffnet, Upload-Bereich korrekt erkannt
  • MP4-Dateien werden nacheinander per <input type="file"> hochgeladen
  • Ladebalken verschwindet nach Verarbeitung → TikTok signalisiert, dass das Video bereit zum Posten ist

Das Problem:

Sobald der Upload abgeschlossen ist, wird der “Beitrag”-Button sichtbar und optisch aktiv (rot).

Doch Selenium kann ihn nicht klicken. Es erscheint ein Fehler wie:❌ Beitrag-Button konnte nicht geklickt werden: Message:

Stacktrace:

...

ElementNotInteractableException

Ich habe bereits versucht:

• element_to_be_clickable

• Scrollen mit scrollIntoView

• JS-Fallback via driver.execute_script("arguments[0].click()", button)

• Warten auf is_enabled(), is_displayed() usw.

Der Button bleibt im DOM vorhanden, sieht aktiv aus, aber scheint durch etwas blockiert oder noch nicht wirklich „klickbar“ für Selenium.

Hypothesen:

• Ein unsichtbares Overlay blockiert den Button

• Der „sichtbare“ Button ist nur Fake, und der echte kommt später

• TikTok braucht intern noch einen Validierungsprozess, der nicht abgeschlossen ist

Ziel:

Ich suche nach einer verlässlichen Möglichkeit, diesen Button zu klicken oder vorher sicherzustellen, dass wirklich alle Bedingungen erfüllt sind. Auch ein kompletter Workaround (z. B. JS-only-Lösung oder Puppeteer) wäre in Ordnung.

try:
  # Beitrag-Button suchen
  post_button = wait.until(EC.presence_of_element_located((By.XPATH, '//button[contains(text(),"Beitrag")]')))
  # Scrollen zum Button (sichtbar machen)
  driver.execute_script("arguments[0].scrollIntoView(true);", post_button)
  time.sleep(1)
  if post_button.is_enabled():
    try:
      post_button.click()
      print("✅ Normal geklickt")
    except Exception:
      # Fallback mit JavaScript
      driver.execute_script("arguments[0].click();", post_button)
      print("✅ JS-Klick erfolgreich")
  else:
    print("❌ Button gefunden, aber nicht aktiv!")
except Exception as e:
  print("❌ Beitrag-Button konnte NICHT geklickt werden:", e)

Fragen an die Community:

  • Kennt jemand dieses Problem speziell bei TikTok Studio Uploads?
  • Gibt es einen bewährten Selenium-Trick, mit dem man TikTok-Uploads sicher abschließen kann?
  • Gibt es evtl. ein verstecktes Element, das vorher geschlossen werden muss?
  • Wäre Puppeteer (Headless Chrome via NodeJS) hier zuverlässiger?
Homepage, App, HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Python, Webentwicklung, Selenium

Meistgelesene Beiträge zum Thema Code