rtippin/messenger-faker

Messenger Faker Commands

Fund package maintenance!
RTippin

v1.10.0 2024-05-23 20:52 UTC

README

Latest Version on Packagist Total Downloads Tests StyleCI License

Preview

This package is an addon for rtippin/messenger

It is NOT advised to install this in a production app.

Features:

  • Commands to mock realtime events such as knocks, typing, and marking read.
  • Command to seed realtime messages with typing.
  • Commands to seed attachment messages (images, documents, audio, videos).
  • Commands to seed system messages and message reactions.
  • FakerBot pre-registered with Messenger that allows you to trigger our commands through chat-bots.

Installation

Via Composer

$ composer require rtippin/messenger-faker --dev

Config

  • Default values for local storage location of the files we use when seeding.
    • When seeding using local files, a random file from the message types specified folder will be used.
    • When seeding image files with no url/local flag specified, it will use the default image url from the config.
  • Flag to enable or disable registering our FakerBot.

Defaults

'paths' => [
    'images' => storage_path('faker/images'),
    'documents' => storage_path('faker/documents'),
    'audio' => storage_path('faker/audio'),
    'videos' => storage_path('faker/videos'),
],

'default_image_url' => 'https://source.unsplash.com/random',

'enable_bot' => true,

To override the file paths, please publish our config and edit accordingly

$ php artisan vendor:publish --tag=messenger-faker

Commands

php artisan messenger:faker:knock {thread?}

  • Send a knock to the given thread.

php artisan messenger:faker:message {thread?} | --count=5 | --delay=2 | --admins | --silent

  • Make participants send messages. Will also emit typing and mark read.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many messages are sent.
  • --delay=X flag to set delay in seconds between each message.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:react {thread?} | --count=5 | --messages=5 | --delay=1 | --admins | --silent

  • Make participants add reactions to the latest messages.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many reactions are added.
  • --messages=X flag to set how many latest messages are chosen at random to be reacted to.
  • --delay=X flag to set delay in seconds between each reaction.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:system {thread?} | --type= | --count=1 | --delay=2 | --admins | --silent

  • Make participants send system messages.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many system messages are sent.
  • --type=X flag to set the system message type. 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
  • --delay=X flag to set delay in seconds between each system message.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:image {thread?} | --count=1 | --delay=2 | --admins | --local | --url= | --silent

  • Make participants send image messages. Will also emit typing and mark read. If --local or --url is not set, we pull images from the default image url in the config.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many images are sent.
  • --delay=X flag to set delay in seconds between each image.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --local flag will choose a random image from the directory specified for images in the config file.
  • --url=X flag lets you directly specify an image URL to download and emit.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:document {thread?} | --count=1 | --delay=2 | --admins | --url= | --silent

  • Make participants send document messages. Will also emit typing and mark read. If --url is not set, will choose a random document from the directory specified for documents in the config file.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many documents are sent.
  • --delay=X flag to set delay in seconds between each document.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --url=X flag lets you directly specify a document URL to download and emit.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:audio {thread?} | --count=1 | --delay=2 | --admins | --url= | --silent

  • Make participants send audio messages. Will also emit typing and mark read. If --url is not set, will choose a random audio file from the directory specified for audio in the config file.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many audio files are sent.
  • --delay=X flag to set delay in seconds between each audio file.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --url=X flag lets you directly specify an audio URL to download and emit.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:video {thread?} | --count=1 | --delay=2 | --admins | --url= | --silent

  • Make participants send video messages. Will also emit typing and mark read. If --url is not set, will choose a random video file from the directory specified for videos in the config file.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many video files are sent.
  • --delay=X flag to set delay in seconds between each video file.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --url=X flag lets you directly specify a video URL to download and emit.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:random {thread?} | --count=5 | --delay=2 | --admins | --silent

  • Send random commands using ['audio', 'document', 'image', 'knock', 'message', 'react', 'system', 'typing']
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --count=X flag to set how many messages are sent.
  • --delay=X flag to set delay in seconds between each message.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.
  • --silent flag that will suppress all broadcast and event dispatches.

php artisan messenger:faker:read {thread?} | --admins

  • Mark participants in the thread as read.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --admins flag will only use admin participants if using a group thread.

php artisan messenger:faker:typing {thread?} | --admins

  • Make participants in the thread type.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --admins flag will only use admin participants if using a group thread.
  • --bots flag will only use bots if using a group thread.

php artisan messenger:faker:unread {thread?} | --admins

  • Mark participants in the thread as unread.
  • {thread?} ID of the thread you want to seed. Random if not set.
  • --admins flag will only use admin participants if using a group thread.

FakerBot

  • Our service provider will have already registered FakerBot for you if enabled in our config.
  • You should ensure your main messenger.php config has the bots feature enabled.
  • When you use the messenger API to add handlers onto a bot, you will see our bot listed.
  • Once our FakerBot is attached to a thread's bot, you can trigger it by sending a message using the following syntax:
    • !faker {action} {count?} {delay?}
  • Available actions: audio, document, image, knock, message, random, react, system, typing, video