Spaces:
Sleeping
Sleeping
| from pymongo.mongo_client import MongoClient | |
| from pymongo.server_api import ServerApi | |
| import streamlit as st | |
| import os | |
| URI_OS = os.getenv("MONGODB_LOGIN") | |
| def mongodb_connection(db_name: str, collection_name: str) -> tuple: | |
| client = MongoClient(URI_OS, server_api=ServerApi('1')) | |
| db = client[db_name] | |
| collection = db[collection_name] | |
| try: | |
| client.admin.command('ping') | |
| print("MongoDB connection successful") | |
| return True, collection | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return False, None | |
| def get_keys_from_collection(collection) -> list: | |
| document = collection.find_one() | |
| return document.keys() | |
| def get_from_collection(collection, name: str) -> list: | |
| categories = collection.distinct(name) | |
| return categories | |
| def delete_from_collection(collection, id_to_delete: str) -> None: | |
| collection.delete_one({'_id': id_to_delete}) | |
| return None | |
| ALPHABET = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ' | |
| ALPHABET_SIZE = len(ALPHABET) | |
| def normalize_text(text): | |
| # Приводим к верхнему регистру и убираем символы вне алфавита | |
| return ''.join([c for c in text.upper() if c in ALPHABET]) | |
| def get_shift(char): | |
| return ALPHABET.index(char) | |
| def vigenere_encrypt(plaintext, key): | |
| plaintext = normalize_text(plaintext) | |
| key = normalize_text(key) | |
| ciphertext = '' | |
| for i, char in enumerate(plaintext): | |
| shift = get_shift(key[i % len(key)]) | |
| char_index = get_shift(char) | |
| new_index = (char_index + shift) % ALPHABET_SIZE | |
| ciphertext += ALPHABET[new_index] | |
| return ciphertext | |
| def vigenere_decrypt(ciphertext, key): | |
| ciphertext = normalize_text(ciphertext) | |
| key = normalize_text(key) | |
| plaintext = '' | |
| for i, char in enumerate(ciphertext): | |
| shift = get_shift(key[i % len(key)]) | |
| char_index = get_shift(char) | |
| new_index = (char_index - shift) % ALPHABET_SIZE | |
| plaintext += ALPHABET[new_index] | |
| return plaintext | |