import sys import threading import time import requests from PyQt6.QtWidgets import ( QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox ) from PyQt6.QtCore import QTimer class PosterApp(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Auto Poster") self.setFixedSize(300, 250) self.layout = QVBoxLayout() self.ip_label = QLabel("IP Address:") self.ip_input = QLineEdit() self.layout.addWidget(self.ip_label) self.layout.addWidget(self.ip_input) self.name_label = QLabel("Name:") self.name_input = QLineEdit() self.layout.addWidget(self.name_label) self.layout.addWidget(self.name_input) self.seconds_label = QLabel("Seconds Interval:") self.seconds_input = QLineEdit() self.seconds_input.setText("10") self.layout.addWidget(self.seconds_label) self.layout.addWidget(self.seconds_input) self.start_button = QPushButton("Start") self.stop_button = QPushButton("Stop") self.layout.addWidget(self.start_button) self.layout.addWidget(self.stop_button) self.setLayout(self.layout) self.running = False self.thread = None self.start_button.clicked.connect(self.start_posting) self.stop_button.clicked.connect(self.stop_posting) def start_posting(self): if self.running: return ip = self.ip_input.text().strip() name = self.name_input.text().strip() seconds = self.seconds_input.text().strip() if not ip or not name or not seconds.isdigit(): QMessageBox.warning(self, "Invalid Input", "Please provide valid IP, name, and seconds.") return self.running = True self.thread = threading.Thread(target=self.post_loop, args=(ip, name, int(seconds)), daemon=True) self.thread.start() def stop_posting(self): self.running = False def post_loop(self, ip, name, seconds): url = f"http://{ip}/{name}/" while self.running: try: print(f"POST to {url}") response = requests.post(url) print(f"Status: {response.status_code}") except Exception as e: print(f"Error: {e}") time.sleep(seconds) if __name__ == "__main__": app = QApplication(sys.argv) window = PosterApp() window.show() sys.exit(app.exec())