diff --git a/.gitignore b/.gitignore index 0cafc1c..67b5e38 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -.venv/ \ No newline at end of file +.venv/ +.env +__pycache__/ diff --git a/create_issue.py b/create_issue.py new file mode 100644 index 0000000..35fea7f --- /dev/null +++ b/create_issue.py @@ -0,0 +1,33 @@ +import os +import requests + + +TOKEN = os.getenv("GITEA_WRITE_TOKEN") +if not TOKEN: + raise Exception("Переменная окружения GITEA_WRITE_TOKEN не задана") + +headers = { + "Authorization": f"token {TOKEN}", + "Content-Type": "application/json" +} + + +owner = "stud203834" +repo = "2zadanie" + +url = f"https://git.vyatsu.ru/api/v1/repos/{owner}/{repo}/issues" + +data = { + "title": "Тестовый issue от студента", + "body": "Создано через API Gitea с токеном на запись.", + "labels": [] +} + +response = requests.post(url, headers=headers, json=data) + +if response.status_code == 201: + print("✅ Issue создан:") + print(response.json()["html_url"]) +else: + print("❌ Ошибка:", response.status_code) + print(response.text) \ No newline at end of file diff --git a/http_requests.py b/http_requests.py new file mode 100644 index 0000000..05010ae --- /dev/null +++ b/http_requests.py @@ -0,0 +1,9 @@ +import requests + + +response = requests.get("http://vyatsu.ru") + +print("--- Ответ через библиотеку requests ---") + +print(f"Статус-код: {response.status_code}") +print(response.text[:500]) diff --git a/http_socket.py b/http_socket.py new file mode 100644 index 0000000..5a958b0 --- /dev/null +++ b/http_socket.py @@ -0,0 +1,19 @@ +import socket + + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + +client.connect(('vyatsu.ru', 80)) + + +request = "GET / HTTP/1.1\r\nHost: vyatsu.ru\r\nConnection: close\r\n\r\n" + +client.sendall(request.encode()) + + +response = client.recv(4096) +print("--- Ответ через сокет ---") +print(response.decode()) + +client.close() diff --git a/tcp_client.py b/tcp_client.py new file mode 100644 index 0000000..81f83ec --- /dev/null +++ b/tcp_client.py @@ -0,0 +1,20 @@ +import socket + + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + +client.connect(("127.0.0.1", 10000)) + + +message = b'hello server' +client.sendall(message) + + +data = client.recv(1024) + + +print(f"Ответ от сервера: {data.decode()}") + + +client.close() diff --git a/tcp_server.py b/tcp_server.py new file mode 100644 index 0000000..293cf6f --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,35 @@ +import socket + + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + +server.bind(("0.0.0.0", 10000)) + + +server.listen(1) +print("TCP сервер запущен и ожидает подключения на порту 10000...") + +while True: + + conn, addr = server.accept() + print(f"Подключение от клиента: {addr}") + + + data = conn.recv(1024) + if not data: + break + + + print(f"Получено сообщение: {data.decode()}") + conn.sendall(data.upper()) + + + conn.close() + + + if data.upper() == b'EXIT': + print("Сервер завершает работу...") + break + +server.close() diff --git a/token_read.py b/token_read.py new file mode 100644 index 0000000..9aa64a2 --- /dev/null +++ b/token_read.py @@ -0,0 +1,24 @@ +import os +import requests +from dotenv import load_dotenv + +# Загружаем переменные из .env файла +load_dotenv() + +# Берем токен из переменной окружения +TOKEN = os.getenv("GITEA_TOKEN") + +# Проверка: если токен не найден, выведем предупреждение +if not TOKEN: + print("Ошибка: Токен не найден в файле .env!") +else: + headers = {"Authorization": f"token {TOKEN}"} + + # Отправляем запрос на ПРАВИЛЬНУЮ ссылку (из твоего задания) + response = requests.get("https://git.vyatsu.ru/api/v1/user", headers=headers) + + if response.status_code == 200: + print("Успешное подключение! Данные профиля:") + print(response.json()) + else: + print(f"Сервер вернул ошибку {response.status_code}: {response.text}") diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..b56edb7 --- /dev/null +++ b/udp_client.py @@ -0,0 +1,14 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +message = b'hello server' +server_address = ('127.0.0.1', 10001) + + +client.sendto(message, server_address) + + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() diff --git a/udp_client_mod.py b/udp_client_mod.py new file mode 100644 index 0000000..35d2e25 --- /dev/null +++ b/udp_client_mod.py @@ -0,0 +1,18 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + + +server_address = ('127.0.0.1', 12000) + +message = "hello from egora" +print(f"Отправка сообщения: {message}") + + +client.sendto(message.encode(), server_address) + + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() diff --git a/udp_server.py b/udp_server.py new file mode 100644 index 0000000..1be1db7 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,17 @@ +import socket + + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +server.bind(('0.0.0.0', 10001)) + +print("UDP сервер запущен...") + +while True: + + data, addr = server.recvfrom(1024) + print(f"Сообщение от {addr}: {data.decode()}") + + + modified_data = data.upper() + b" [UDP]" + server.sendto(modified_data, addr) diff --git a/udp_server_mod.py b/udp_server_mod.py new file mode 100644 index 0000000..513896f --- /dev/null +++ b/udp_server_mod.py @@ -0,0 +1,23 @@ +import socket +from datetime import datetime + + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + + +server.bind(('0.0.0.0', 12000)) + +print("Модифицированный UDP сервер запущен на порту 12000...") + +while True: + + data, addr = server.recvfrom(1024) + message = data.decode() + print(f"Получено от {addr}: {message}") + + + current_time = datetime.now().strftime("%H:%M:%S") + response_text = f"[{current_time}] Server received: {message.upper()}" + + + server.sendto(response_text.encode(), addr)