timmy / 基於 WebSocket 的遠端指令執行服務
0 likes
0 forks
1 files
Last active 10 months ago
這段程式碼建立了一個 WebSocket 伺服器,允許遠端用戶端傳送指令,並在伺服器端執行該指令後回傳執行結果。適用於遠端系統管理、指令控制或測試環境中的即時互動,但因為直接執行來自用戶端的指令,需特別注意安全性風險,如權限控管與輸入驗證,以防止指令注入攻擊。
| 1 | import asyncio |
| 2 | import websockets |
| 3 | import subprocess |
| 4 | |
| 5 | async def handle_command(websocket, path): |
| 6 | try: |
| 7 | async for message in websocket: |
| 8 | print(f"Received command: {message}") |
| 9 | |
| 10 | # 執行系統指令 |
timmy / 使用 Streamlit 建立 WebSocket 伺服器與客戶端
0 likes
0 forks
1 files
Last active 10 months ago
| 1 | import asyncio |
| 2 | import websockets |
| 3 | import streamlit as st |
| 4 | import threading |
| 5 | import socket |
| 6 | |
| 7 | # Function to check if a port is free |
| 8 | def is_port_free(port): |
| 9 | with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
| 10 | return s.connect_ex(('localhost', port)) != 0 |
timmy / Python 排程任務管理
0 likes
0 forks
1 files
Last active 10 months ago
這段程式碼使用 schedule 設定每 5 分鐘執行一次指定任務,並透過主迴圈不斷檢查和執行排程中的任務。
| 1 | import time |
| 2 | import schedule |
| 3 | |
| 4 | # 定義任務函數 |
| 5 | def job(param): |
| 6 | print(f"執行任務,參數: {param}") |
| 7 | |
| 8 | if __name__ == "__main__": |
| 9 | # 設定排程,每 5 分鐘執行一次 |
| 10 | schedule.every(5).minutes.do(job, param="範例參數") |
timmy / 解析 RSS Feed 以獲取最新資訊
0 likes
0 forks
1 files
Last active 10 months ago
這段程式碼解析指定的 RSS Feed,並顯示 Feed 的標題以及每個項目的標題、連結和發布日期。
| 1 | import feedparser |
| 2 | |
| 3 | # RSS Feed 的 URL |
| 4 | rss_url = "https://www.twcert.org.tw/tw/rss-104-1.xml" |
| 5 | |
| 6 | # 解析 RSS Feed |
| 7 | feed = feedparser.parse(rss_url) |
| 8 | |
| 9 | # 顯示 Feed 的標題 |
| 10 | print(f"Feed Title: {feed.feed.title}\n") |
timmy / 使用 SQLite 儲存與管理 RSS 資料
0 likes
0 forks
1 files
Last active 10 months ago
這段程式碼使用 SQLite 初始化資料庫與表格,並提供函數將條目插入表格,同時處理重複條目的情況。測試範例展示如何插入一筆包含標題、連結、發布日期及描述的資料。
| 1 | import sqlite3 |
| 2 | |
| 3 | |
| 4 | # 初始化資料庫及表格 |
| 5 | def initialize_db(db_name="database.db", table_name="entries"): |
| 6 | conn = sqlite3.connect(db_name) |
| 7 | cursor = conn.cursor() |
| 8 | cursor.execute( |
| 9 | f""" |
| 10 | CREATE TABLE IF NOT EXISTS {table_name} ( |
timmy / Python 虛擬環境自動化設定
1 likes
0 forks
2 files
Last active 10 months ago
這段 Bash 腳本用於建立和管理 Python 虛擬環境,檢查虛擬環境是否存在,若不存在則建立並啟動環境,升級 pip,並自動安裝 requirements.txt 中的依賴(若檔案存在)。
| 1 | #!/bin/bash |
| 2 | |
| 3 | # 設定虛擬環境名稱 |
| 4 | VENV_DIR="myenv" |
| 5 | |
| 6 | # 檢查是否已經存在虛擬環境 |
| 7 | if [ -d "$VENV_DIR" ]; then |
| 8 | echo "虛擬環境 '$VENV_DIR' 已經存在。" |
| 9 | else |
| 10 | echo "正在建立虛擬環境 '$VENV_DIR'..." |
timmy / 台灣假日 API 查詢與快取
0 likes
0 forks
1 files
Last active 10 months ago
這段程式碼是一個節假日查詢工具,從指定 API 獲取節假日資料,支援緩存與分頁,並提供按年份篩選節假日、檢查特定日期是否為節假日的功能,同時以 Holiday 類別封裝每個節假日的詳細資訊,便於操作與顯示。
| 1 | import requests |
| 2 | import os |
| 3 | import json |
| 4 | |
| 5 | class HolidayAPI: |
| 6 | def __init__(self, base_url, cache_dir="cache"): |
| 7 | """ |
| 8 | Initialize the HolidayAPI class. |
| 9 | :param base_url: The base URL for the API endpoint. |
| 10 | :param cache_dir: Directory to store cached data. |
timmy / settings.json
0 likes
0 forks
1 files
Last active 10 months ago
| 1 | { |
| 2 | "lsp": { |
| 3 | "pyright": { |
| 4 | "settings": { |
| 5 | "python": { |
| 6 | "pythonPath": ".venv/bin/python" |
| 7 | } |
| 8 | } |
| 9 | } |
| 10 | }, |