Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .save/create_Table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import argparse
import os

# Setting up argparse for command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name', help="name Table")
args = parser.parse_args()

os.makedirs(args.name, exist_ok=True)
22 changes: 22 additions & 0 deletions .save/create_Value.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import argparse
import os

# Setting up argparse for command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name_table', help="Name of the directory", required=True)
parser.add_argument('--name_value', help="Name of the value/file", required=True)
parser.add_argument('--data', help="Data to write to the file", required=False)
args = parser.parse_args()

try:
# Write the data to the file
with open(f"{args.name_table}/{args.name_value}.txt", "w") as file:
if args.data is not None:
file.write(args.data)
else:
raise ValueError("No data provided")

except Exception as e:
# In case of error, prompt for user input
with open(f"{args.name_table}/{args.name_value}.txt", "w") as file:
file.write(input("text or number to save> "))
19 changes: 19 additions & 0 deletions .save/set_Value.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import argparse
import os

# Setting up argparse for command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--name_table', help="Name of the directory", required=True)
parser.add_argument('--name_value', help="Name of the value/file", required=True)
parser.add_argument('--data', help="Data to write to the file", required=False)
args = parser.parse_args()
file = f"{args.name_table}/{args.name_value}"

try:
if args.data is not None:
file.write(args.data)
else:
raise ValueError("No data provided")

except Exception as e:
file.write(input("text or number to save> "))
21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

91 changes: 0 additions & 91 deletions README.md

This file was deleted.

27 changes: 27 additions & 0 deletions database.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
print("install") # Fixing the print statement
print("")
download = ["pip install requests"]
for w in download:
print(w)

print("")
try:
import argparse
import requests
import os

# Setting up argparse for command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('install', help="Install argument")
args = parser.parse_args()

if args.install == "install":
os.makedirs(".save", exist_ok=True)
print("Directory '.save' created successfully.")
with open(".save/create_Table.py", "w") as file:
file.write(requests.get('https://hackgames15.github.io/database/create_Table.txt').text)
with open(".save/create_Value.py", "w") as file:
file.write(requests.get('https://hackgames15.github.io/database/create_value.txt').text)

except Exception as e:
print(f"error: {e}")
27 changes: 0 additions & 27 deletions index.php

This file was deleted.

74 changes: 74 additions & 0 deletions server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import socket
import threading
import json

# Server settings
HOST = '127.0.0.1' # Localhost
PORT = 3500
# Read port from config.json
try:
with open("config.json", "r") as file:
config = json.load(file)
PORT = config.get("port", 3500) # Default port if not found
except Exception as e:
print(e)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()

clients = []
nicknames = []

# Broadcast messages to all clients
def broadcast(message):
for client in clients:
try:
client.send(message)
except:
# Handle broken connections
client.close()
clients.remove(client)

# Handle client connection
def handle_client(client):
while True:
try:
# Receive and broadcast messages
message = client.recv(1024)
if not message:
# Connection was closed
break
broadcast(message)
except (ConnectionResetError, socket.error):
# Handle disconnection or socket error
break

# Remove and close client
index = clients.index(client)
clients.remove(client)
client.close()
nickname = nicknames[index]
broadcast(f'{nickname} has left the chat!'.encode('utf-8'))
nicknames.remove(nickname)

# Receive clients
def receive():
while True:
client, address = server.accept()
print(f"Connected with {str(address)}")

client.send("Server: Enter your nickname: ".encode('utf-8'))
nickname = client.recv(1024).decode('utf-8')
nicknames.append(nickname)
clients.append(client)

print(f'Nickname of the client is {nickname}!')
broadcast(f'Server: {nickname} joined the chat!'.encode('utf-8'))
client.send('Client: Connected to the server!'.encode('utf-8'))

thread = threading.Thread(target=handle_client, args=(client,))
thread.start()

print("Server is Run")
receive()
78 changes: 78 additions & 0 deletions test2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import socket
import threading
import tkinter as tk
from tkinter import simpledialog, scrolledtext, messagebox

# Client settings
HOST = '127.0.0.1'
PORT = 5000

# Initialize socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))

class ChatClient:
def __init__(self, root):
self.root = root
self.root.title("Chat Application")
self.root.configure(bg="#1E1E1E")

self.server_ip = tk.Label(root,text=f"server_ip: {HOST}")
self.server_ip.pack()
self.server_port = tk.Label(root,text=f"server_port: {PORT}")
self.server_port.pack()

self.chat_label = tk.Label(root, text="Chat:")
self.chat_label.pack(padx=20, pady=5)

self.text_area = scrolledtext.ScrolledText(root)
self.text_area.pack(padx=20, pady=5)
self.text_area.config(state='disabled')

self.msg_label = tk.Label(root, text="Message:")
self.msg_label.pack(padx=20, pady=5)

self.msg_entry = tk.Entry(root, width=50)
self.msg_entry.pack(padx=20, pady=5)

self.send_button = tk.Button(root, text="Send", command=self.write)
self.send_button.pack(padx=20, pady=5)

self.stop_button = tk.Button(root, text="Stop", command=self.stop)
self.stop_button.pack(padx=20, pady=5)

self.root.protocol("WM_DELETE_WINDOW", self.stop)

self.nickname = simpledialog.askstring("Nickname", "Please choose a nickname", parent=root)
client.send(self.nickname.encode('utf-8'))

self.running = True
self.receive_thread = threading.Thread(target=self.receive)
self.receive_thread.start()

def write(self):
message = f"{self.nickname}: {self.msg_entry.get()}"
client.send(message.encode('utf-8'))
self.msg_entry.delete(0, tk.END)

def receive(self):
while self.running:
try:
message = client.recv(1024).decode('utf-8')
self.text_area.config(state='normal')
self.text_area.insert(tk.END, message + '\n')
self.text_area.config(state='disabled')
self.text_area.yview(tk.END)
except:
print("An error occurred!")
client.close()
break

def stop(self):
self.running = False
client.close()
self.root.destroy()

root = tk.Tk()
app = ChatClient(root)
root.mainloop()