Metadata-Version: 2.4
Name: agoras-core
Version: 2.0.4
Summary: Core interfaces, Feed, Sheet, and Base API/Auth classes for Agoras
Home-page: https://github.com/LuisAlejandro/agoras
Author: Luis Alejandro Martínez Faneyth
Author-email: luis@luisalejandro.org
Keywords: social networks,api,feed,rss,sheets
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
Requires-Dist: agoras-common==2.0.4
Requires-Dist: agoras-media==2.0.4
Requires-Dist: atoma==0.0.17
Requires-Dist: gspread==6.2.1
Requires-Dist: google-auth==2.55.0
Requires-Dist: python-dateutil==2.9.0.post0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

agoras-core
===========

Core interfaces, Feed management, Sheet management, and Base API/Auth classes.

Installation
------------

.. code-block:: bash

   pip install agoras-core

Contents
--------

- **SocialNetwork Interface**: Abstract base class for all platforms
- **Feed**: RSS feed parsing and management
- **Sheet**: Google Sheets integration for scheduled posts
- **BaseAPI**: Base API client with rate limiting
- **BaseAuthManager**: OAuth2 authentication base
- **OAuthCallbackServer**: Local callback server for OAuth flows
- **SecureTokenStorage**: Secure token storage

Usage
-----

.. code-block:: python

   import asyncio
   from agoras.core.interfaces import SocialNetwork
   from agoras.core.feed import Feed
   from agoras.core.sheet import ScheduleSheet
   from agoras.core.auth import OAuthCallbackServer

   # Download RSS feed
   async def get_feed_items():
       feed = Feed('https://example.com/feed.xml')
       await feed.download()
       items = feed.get_latest_items(5)
       return items

   # Use OAuth callback server
   async def oauth_flow():
       server = OAuthCallbackServer(expected_state='random_state')
       # Server will capture authorization code automatically
       code = await server.start_and_wait()
       return code

   asyncio.run(get_feed_items())

Dependencies
------------

- agoras-common
- agoras-media
- feedparser (RSS parsing)
- gspread (Google Sheets)
