Skip to content

fadhriza/Automaticnewscrawl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“° News Aggregator App - Berita Indo API

A modern, feature-rich Indonesian news aggregator desktop application built with Python and CustomTkinter. This application provides a beautiful, user-friendly interface to browse, view, and manage news from multiple Indonesian news sources.

Version Python License

✨ Features

πŸ“– News Reader

  • Browse news from multiple Indonesian news sources
  • Filter by category, zone, and search keywords
  • Beautiful card-based UI for easy reading
  • Real-time news fetching with loading indicators
  • Support for 12+ major news sources including:
    • Antara News
    • CNN News
    • CNBC News
    • Republika News
    • Tempo News
    • Okezone News
    • Kumparan News
    • Tribun News (with zone support)
    • Zetizen JawaPos News
    • Vice News
    • Suara News
    • VOA News

πŸ” API Viewer

  • View raw API responses with JSON syntax highlighting
  • Copy API endpoints and responses to clipboard
  • Test API calls directly from the application
  • Real-time API URL generation based on selections

🎨 Media Content Maker

  • Generate Instagram-style news images with text overlays
  • Custom logo upload support
  • Bulk download selected news items as images
  • Export news content as text files
  • Grid view for easy selection
  • Multi-select with keyboard shortcuts (Cmd/Ctrl + Click, Shift + Click)

πŸ“± Meta API Integration

  • Publish news directly to Instagram and Facebook
  • Configure Meta API credentials through the app
  • Customizable caption templates
  • Real-time publishing logs
  • Support for both Instagram and Facebook Page publishing

🎨 Modern UI

  • Beautiful, modern interface built with CustomTkinter
  • Light and dark mode support
  • Responsive design with smooth animations
  • Intuitive navigation with tabbed interface

πŸš€ Getting Started

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

Installation

  1. Clone the repository:

    git clone https://github.com/rizalfadhilah/Automaticnewscrawl.git
    cd Automaticnewscrawl
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python main.py

πŸ“¦ Building Executables

macOS

Create App Bundle and DMG (Recommended)

chmod +x build_dmg.sh
./build_dmg.sh

Create Single Executable

chmod +x build_mac.sh
./build_mac.sh

Windows

Using PowerShell (Recommended)

.\build_windows.ps1

Using Batch Script

build_windows.bat

For detailed building instructions, see BUILD_INSTRUCTIONS.md.

🎯 Usage

News Reader Tab

  1. Select a news source from the left panel
  2. (Optional) Select a zone or category if available
  3. (Optional) Enter search keywords
  4. Click "πŸš€ Fetch News" to load news articles
  5. Browse news cards and click to open articles in your browser

API Viewer Tab

  1. Select a news source
  2. Configure filters (zone, type, search)
  3. View the generated API endpoint
  4. Click "Fetch API Response" to see the JSON response
  5. Use "Copy URL" or "Copy JSON" buttons to copy data

Media Content Maker Tab

  1. Select a news source and configure filters
  2. (Optional) Upload a custom logo for image generation
  3. Click "Load News" to fetch news items
  4. Select news items (click to select, Cmd/Ctrl+Click for multi-select)
  5. Use bulk actions:
    • Download Selected: Save all selected items as images
    • Save as Text: Export selected items as a text file
  6. Individual actions per card:
    • Download: Generate and save a single news image
    • Copy: Copy news content to clipboard
    • Publish: Publish to Instagram/Facebook (requires Meta API configuration)

Meta Config Tab

  1. Click "✏️ Edit" to enable editing
  2. Enter your Meta API credentials:
    • Instagram Access Token: Your Instagram Business Account access token
    • Instagram User ID: Your Instagram Business Account ID
    • Facebook Page Access Token: Your Facebook Page access token
    • Facebook Page ID: Your Facebook Page ID
  3. Configure default tags and caption template
  4. Click "πŸ’Ύ Save Configuration" to save

Note: To get Meta API credentials, visit Meta for Developers

πŸ“ Project Structure

Automaticnewscrawl/
β”œβ”€β”€ app.py                 # Main application class
β”œβ”€β”€ main.py                # Application entry point
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ config/
β”‚   └── news_sources.py    # News sources configuration
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ api_client.py      # News API client
β”‚   └── meta_client.py     # Meta API client (Instagram/Facebook)
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ date_utils.py      # Date utility functions
β”‚   β”œβ”€β”€ image_utils.py     # Image generation utilities
β”‚   β”œβ”€β”€ meta_config.py     # Meta API configuration manager
β”‚   β”œβ”€β”€ path_utils.py      # Path handling utilities
β”‚   └── text_utils.py      # Text processing utilities
└── widgets/
    β”œβ”€β”€ json_viewer.py     # JSON viewer widget
    β”œβ”€β”€ loading_spinner.py # Loading spinner widget
    β”œβ”€β”€ modern_button.py   # Modern button widget
    β”œβ”€β”€ news_card.py       # News card widget
    └── news_grid_card.py  # News grid card widget

πŸ› οΈ Dependencies

  • customtkinter (>=5.2.0) - Modern UI framework
  • requests (>=2.31.0) - HTTP library for API calls
  • Pillow (>=10.0.0) - Image processing
  • pyperclip (>=1.8.2) - Clipboard operations
  • pyinstaller (>=6.0.0) - For building executables

See requirements.txt for the complete list.

πŸ”§ Configuration

News Sources

News sources are configured in config/news_sources.py. You can add or modify news sources by editing this file.

Meta API

Meta API configuration is stored locally and can be managed through the "Meta Config" tab in the application.

πŸ“ API Endpoint

The application uses the Berita Indo API to fetch news data.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

rizal.fadh

πŸ™ Acknowledgments

πŸ“ž Support

If you encounter any issues or have questions, please open an issue on the GitHub repository.


Made with ❀️ for the Indonesian news community

About

Ultimate Effortless to create auto News Content that crawling from indonesian news

Resources

License

Stars

Watchers

Forks

Packages

No packages published