Skip to main content

Unofficial Omegle API with built in user client

Project description

Pymegle

Pymegle is an unofficial API for Omegle's text chat using asyncio. It provides an interface for connecting to text chats and asynchronous event handling. This package also comes bundled with a full-featured user client that can be run in the console.

DISCLAIMER: This software is not intended to be used for spam or other disruptive/malicious activities. Please abide by Omegle's terms of service.

Installation

Pymegle can be installed from PyPi using the following command:

pip install pymegle

Starting Out

The simplest usage of this package is interacting with the user client. It can be run using the following code.

NOTE: Many consoles were not designed with asynchronous operation in mind and as a result may experience issues when running the interactive client. PyCharm's Python Console and the Windows command prompt tend to perform the best.

import pymegle

pymegle.run_user_clent()

The user client recreates the Omegle browser experience in the console, showcasing what can be done with this API.

Basic Usage

The OmegleChat class is the basic handler for text chat interactions. It represents a single chat between the client (user) and a partner. It can be inherited to handle various events, such as receiving messages.

For this example, we will make a simple dice roller that responds to a command given by the partner and sends a result.

import pymegle
import random

class DiceRoller(pymegle.OmegleChat):
  def __init__(self, **kwargs):
    super().__init__(**kwargs)
    
    # Automatically add 'diceroller' to the chat request's interests
    self.interests.add("diceroller")
   
  # This coroutine is called when the client successfully connects to a partner
  async def on_connected(self, i):
    # Send a greeting message
    await self.send_message("Hello! Type /roll and I will roll a 6 sided die for you")
  
  # This coroutine is called when the partner sends a message
  async def on_message(self, m):
    # Check if the message matches the specified command
    if m == "/roll":
      await self.send_message("🎲 Rolling...")
      await self.type_message(f"Result: {random.randrange(1, 7)}")

The above chat can then be run by doing:

chat = DiceRoller()
chat.start()

Then, connect to Omegle with diceroller in the interests to test it.

The chat class can be wrapped in an OmegleClient to provide more functionality, namely the ability to automatically begin a new chat when the current one is finished.

class MyClient(pymegle.OmegleClient):
  # This is called when a chat ends
  def on_chat_end(self, log):
    # Returning True tells the client to start a new chat
    return True

client = MyClient(DiceRoller)
client.start()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymegle-0.0.2.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

pymegle-0.0.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file pymegle-0.0.2.tar.gz.

File metadata

  • Download URL: pymegle-0.0.2.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.7

File hashes

Hashes for pymegle-0.0.2.tar.gz
Algorithm Hash digest
SHA256 7b9ff652d66d3225cbabe9d7a64691bf1f5a5e307d21ce360f70ab22e3c90d83
MD5 6d7f733e408468f3fdd027a4210680f3
BLAKE2b-256 bfb764687b841a44ed47a75a038235dffc1bfa757fccc273859a402e841955a9

See more details on using hashes here.

File details

Details for the file pymegle-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pymegle-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.7

File hashes

Hashes for pymegle-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 96ce65368fd48892861a835294c29541808b285f2c60a65bd4737f2b98e9ad9f
MD5 9b4328760ff4940979e1a62df21e02df
BLAKE2b-256 3b4ef8b8ef21a678118b381b2e174fe16efd25cb470ede81f320a003ba6f6113

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page