Skip to main content

AIM Client Using OSCAR Protocol

This project implements an AIM (AOL Instant Messenger) client using the OSCAR protocol. The code facilitates connecting to the AIM service, sending and receiving instant messages, and provides the groundwork for further functionality.

Features

  • Connect to AIM servers: The client allows users to authenticate and establish a connection to AIM servers.
  • Send/Receive Instant Messages: The client can send and receive messages to/from other AIM users in real time.

Getting Started

Installing

pip install aimpyfly

Example: Connecting, Sending, and Receiving Messages

This script demonstrates how to connect to the AIM server, log in with your credentials, send a message to another user, and receive incoming messages.

import asyncio
import logging
from aimpyfly import aim_client

# Define a callback for handling incoming messages
async def message_received(sender, message):
    print(f"New message received from {sender}: {message}")

async def main():
    # Initialize the AIM client with your credentials and server details
    client = aim_client.AIMClient(server="<server>", port=5190, username="<screenname>", password="<password>", loglevel=logging.<LEVEL>)

    # Set the callback to handle incoming messages
    client.set_message_callback(message_received)

    # Connect to the AIM server
    await client.connect()

    # Send a message to another AIM user
    await client.send_message("ukozi", "Hello! This message was sent using the AIM Python client.")

    # Keep the client running to handle and process incoming messages
    await client.process_incoming_packets()

if __name__ == "__main__":
    asyncio.run(main())

What This Does:

  • Connects to the AIM server using your provided server, username, and password.
  • Sends a message to a specific AIM username (`ukozi`).
  • Listens for incoming messages and prints them when received.
  • The client will keep running, allowing real-time message exchanges with other AIM users.

Current Work in Progress

I'm actively working on extending this client to support additional features:

  • Join and interact with AIM chatrooms
  • Viewing user profiles
  • Setting the profile of python client
  • Viewing away messages
  • Setting the way message of the python client
  • Selecting client type.

I encourage contributions to help build out this functionality!

Logging

The code includes detailed logging, which can be useful for debugging and understanding the network communication between the client and the AIM servers. Log messages include information about sent and received FLAP and SNAC packets. To set logging verbosity, pass loglevel=logging.<LEVEL> when creating an instance of AIMClient.

Acknowledgments

Special thanks to:

Contributing

If you'd like to submit your own improvements:

  1. Fork the repository.
  2. Create a new branch for your feature (`git checkout -b feature/new-feature`).
  3. Commit your changes (`git commit -m 'Add new feature'`).
  4. Push to your branch (`git push origin feature/new-feature`).
  5. Open a pull request for review.

License

This project is licensed under the MIT License.

Metadata

Release files for aimpyfly 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aimpyfly 0.1.1
File Size Uploaded Provenance
aimpyfly-0.1.1.tar.gz 13.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aimpyfly 0.1.1
File Interpreter ABI Platform
aimpyfly-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 25.4 kB

Release files / aimpyfly-0.1.1.tar.gz

Download URL aimpyfly-0.1.1.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2aca5afb386ba1f919676514b3adb459727b6828a3713ad2bad75bc3c905ec10
BLAKE2b-256 checksum
How to use checksums
8ea7f86d979d54efff7ab51d72f2e79d0938e720ba937deb8802f3e408788bfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Release files / aimpyfly-0.1.1-py3-none-any.whl

Download URL aimpyfly-0.1.1-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34bddc94995cdd87613bac0bbe3b647da27dfd22672b27f341dffbefcb22fc50
BLAKE2b-256 checksum
How to use checksums
37f5a96e95abd343cbc969768e6e629c75817e7812816f707b439148e16a7190
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Security for aimpyfly 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page