Skip to content

yashChouriya/interactflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

InteractFlow

Python Version Version License: MIT PyPI Status Upload Python Package PyPI Downloads

InteractFlow is a powerful Python tool designed to record and replay user interactions with high precision. Perfect for creating automated workflows, testing scenarios, or demonstrating user interfaces, it captures every detail of user interaction including mouse movements, clicks, keyboard inputs, and scroll actions.

Features

  • ๐ŸŽฅ High-Precision Recording: Captures mouse movements, clicks, keyboard inputs, and scroll actions
  • โฏ๏ธ Flexible Playback: Replay recorded actions with adjustable speed
  • ๐ŸŽฎ Multiple Recording Management: Save and organize multiple recordings
  • โšก Performance Optimized: Smart filtering of redundant mouse movements
  • ๐Ÿ›ก๏ธ Graceful Handling: Clean shutdown and save functionality

Quick Start

Installation

pip install interactflow

Alternative: Install from Source

  1. Clone the repository:
git clone git@github.com:yashChouriya/interactflow.git
cd interactflow
  1. Create and activate a virtual environment:
python -m venv env
source env/bin/activate  # On Windows: .\env\Scripts\activate
  1. Install in development mode:
pip install -e .

Basic Usage

Recording User Actions

Start recording your actions:

interactflow record

Press Ctrl+C to stop recording. The recording will be automatically saved in the ~/.interactflow/recordings directory.

Playing Back Recordings

Play a recorded session:

interactflow play ~/.interactflow/recordings/your_recording.json

Adjust playback speed:

interactflow play ~/.interactflow/recordings/your_recording.json --speed 2.0  # Play at 2x speed

Listing Available Recordings

View all recordings:

interactflow list

Advanced Usage

Recording Module

from interactflow.recorder import ActivityRecorder

# Initialize recorder
recorder = ActivityRecorder()

# Start recording
recorder.start_recording()

# Stop recording
recorder.stop_recording()

# Save recording
recorder.save_recording('my_recording.json')

Playback Module

from interactflow.player import ActivityPlayer

# Initialize player
player = ActivityPlayer()

# Load and play recording
player.load_recording('my_recording.json')
player.play(speed_multiplier=1.5)  # Play at 1.5x speed

Technical Details

Dependencies

  • Python 3.6+
  • pynput >= 1.7.6
  • python-xlib >= 0.33

Project Structure

interactflow/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main.py        # CLI interface
โ”‚   โ”œโ”€โ”€ recorder.py    # Recording functionality
โ”‚   โ””โ”€โ”€ player.py      # Playback functionality
โ”œโ”€โ”€ recordings/        # Stored recordings directory
โ”œโ”€โ”€ .github/          # GitHub configuration
โ”‚   โ””โ”€โ”€ workflows/    # GitHub Actions
โ”œโ”€โ”€ requirements.txt  # Project dependencies
โ”œโ”€โ”€ setup.py         # Package configuration
โ”œโ”€โ”€ LICENSE          # MIT License
โ”œโ”€โ”€ CONTRIBUTING.md  # Contribution guidelines
โ””โ”€โ”€ README.md        # This file

Recording Format

Recordings are stored in JSON format with the following structure:

{
  "version": "1.0",
  "timestamp": "2024-10-31T12:00:00",
  "events": [
    {
      "type": "mouse_move",
      "timestamp": 1.234,
      "x": 100,
      "y": 200
    }
    // ... more events
  ]
}

Platform Support

  • Linux (Full support)
  • Windows (Full support)
  • macOS (Basic support)

Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to:

  • Report bugs
  • Suggest enhancements
  • Submit pull requests
  • Set up development environment

Support

For support, questions, or feature requests:

  1. Check the issues page
  2. Create a new issue if needed
  3. Join our discussions

License

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

Acknowledgments

  • Thanks to the pynput library for providing robust input device monitoring
  • Inspired by the need for reliable UI automation tools

Made with โค๏ธ

About

InteractFlow is a powerful Python-based tool that allows you to record and replay user interactions with high precision. It captures mouse movements, clicks, keyboard inputs, and scroll actions, making it perfect for creating automated workflows, testing scenarios, or demonstrating user interfaces.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages