diff --git a/script.py b/script.py index 0baa1a4..0b6fbc1 100644 --- a/script.py +++ b/script.py @@ -1,9 +1,16 @@ import requests import json +import logging from time import sleep from requests.auth import HTTPBasicAuth -BASE_URL = "https://livetse.ir/wp-json/wp/v2/comments" + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s" +) + +BASE_URL = "https://livetse.ir/wp-json/wp/v2/" USERNAME = "your_username" APP_PASSWORD = "your_application_password" @@ -12,13 +19,14 @@ APP_PASSWORD = "your_application_password" def fetch_comments(post_id=None, per_page=100): all_comments = [] page = 1 - total_pages = 1 + total_pages = 1 + + COMMENTS_URL = f"{BASE_URL}comments" while page <= total_pages: params = { "per_page": per_page, - "page": page, - "status": "approve" + "page": page } if post_id: @@ -26,7 +34,7 @@ def fetch_comments(post_id=None, per_page=100): try: response = requests.get( - BASE_URL, + COMMENTS_URL, params=params, auth=HTTPBasicAuth(USERNAME, APP_PASSWORD), timeout=10 @@ -34,39 +42,39 @@ def fetch_comments(post_id=None, per_page=100): if response.status_code == 200: comments = response.json() - + if page == 1: total_pages = int(response.headers.get("X-WP-TotalPages", 1)) - print(f"Total pages: {total_pages}") + logging.info(f"Total pages: {total_pages}") if not comments: - print("No more comments.") + logging.warning("No more comments.") break all_comments.extend(comments) - print(f"Fetched page {page}/{total_pages} ({len(comments)} comments)") + logging.info(f"Fetched page {page}/{total_pages} ({len(comments)} comments)") page += 1 sleep(0.5) elif response.status_code == 401: - print("Authentication failed ") + logging.error("Authentication failed") break elif response.status_code == 403: - print("Access forbidden ") + logging.error("Access forbidden") break elif response.status_code == 400: - print("Bad request :", response.text) + logging.error(f"Bad request: {response.text}") break else: - print(f"Error: {response.status_code} - {response.text}") + logging.error(f"Error: {response.status_code} - {response.text}") break except requests.exceptions.RequestException as e: - print("Request failed:", e) + logging.exception(f"Request failed: {e}") break return all_comments @@ -78,19 +86,21 @@ def save_to_json(data, filename="comments.json"): def main(): - post_id = None + post_id = None comments = fetch_comments(post_id=post_id) - print(f"\nTotal comments fetched: {len(comments)}") + logging.info(f"Total comments fetched: {len(comments)}") for c in comments[:3]: - print("-" * 40) - print("Author:", c.get("author_name")) - print("Content:", c.get("content", {}).get("rendered")) + logging.info("-" * 40) + logging.info(f"Author: {c.get('author_name')}") + logging.info(f"Content: {c.get('content', {}).get('rendered')}") save_to_json(comments) if __name__ == "__main__": - main() \ No newline at end of file + main() + +