Skip to main content

sopel-spongemock

Sopel plugin to generate "Spongemock" text (based on that SpongeBob meme)

Requirements

Basic usage: Only Sopel itself.

With configurable output: Additionally requires the spongemock PyPI package.

More robust Unicode detection: Additionally requires the unicodedata2 PyPI package.

Installation

Basic

pip install sopel-spongemock

Configurable

pip install sopel-spongemock[lib]

Robust

pip install sopel-spongemock[ud2]

Note: It is possible to install both lib and ud2 extras at once, but doing so serves no purpose; the spongemock package does not make use of unicodedata or unicodedata2.

Configuration

If installed with the lib extra, use the following template in Sopel's configuration file to set options for spongemock's output:

[spongemock]
diversity_bias = 0.6
always_start_lower = False

The diversity_bias option controls the chance of switching cases for each letter in the output. 0.0 represents a perfectly random, 50/50 chance. Higher values increase the likelihood of switching as more consecutive letters are output with the same case. At 1.0, it's guaranteed that the case will switch for every letter.

Values outside the range of [0.0, 1.0] will cause errors.

Feel free to experiment with intermediate values to find what "looks right" for your own interpretation of the mocking-text meme.

The always_start_lower option will output text.swapcase() if the first letter of the output is capitalized. (While the built-in mocker always starts with lowercase, the external library sets case of the first letter randomly.)

Note: Options in this configuration section have no effect if the plugin is installed without the lib extra.

Usage

.spongemock <nick>|<text>

or

.smock <nick>|<text>

If a single word is passed, the command will first check if that nick has said anything in the channel recently, and will mock their last message if so.

Any input that does not match a known user's nick will be mocked directly.

Examples

<dgw> .smock Free speech!
<Sopel> fREe SpEEcH
<dgw> I'm something of a Pythonista myself
<ziro> .smock dgw
<Sopel> i'M soMeThiNg oF a pYtHOnIsTA mySElf

Changelog

1.2.0

Changed:

  • Modernized package metadata and automated releases (#12, #13)
  • Require Python 3.8+ (#12)
  • Require Sopel 8.0+ (#12)

Environments running Sopel 7.1 and/or older Python can continue to use sopel-spongemock 1.1.3; there are no functional changes in this release.

1.1.3

Changed:

  • Take advantage of Sopel 8 features if available (#10)
  • Prune old nick's line after nick-change (#11)

1.1.2

Fixed:

  • Output canonical nick instead of copying .smock <nick>'s input (#8 by @dgw)
  • .smock <nick> didn't casemap correctly (#9 by @dgw)

1.1.1

Fixed:

  • TypeError when attempting to .smock by nick (#7 by @SnoopJ)
  • Documentation of optional support for unicodedata2 library

Changed:

  • Replaced deprecated module decorators with their plugin counterparts (future-proofing this plugin for Sopel 8, Sopel 9, and beyond)

1.1.0

Added:

  • Support for using spongemock external library
  • Support for unicodedata2 when present
  • Plugin configuration options (effective only when external library is in use)

Changed:

  • Built-in mocking function is now smarter about only trying to change the case of characters when it's possible to do so
  • Minimum supported Sopel version raised from 7.0 to 7.1

1.0.0

First official release, converted from single .py file to package.

Metadata

Release files for sopel-spongemock 1.2.0

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

Source distribution (sdist)

Source distribution for sopel-spongemock 1.2.0
File Size Uploaded
sopel_spongemock-1.2.0.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sopel-spongemock 1.2.0
File Interpreter ABI Platform
sopel_spongemock-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.9 kB

Release files / sopel_spongemock-1.2.0.tar.gz

Download URL sopel_spongemock-1.2.0.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ae28b53061aa54ed83aa203060dfea1b7c8c0799b79f8a82f48d896706d363ed
BLAKE2b-256 checksum
How to use checksums
ed87cba347f9ead4c0b159dcce24cec733c4ccfbbba493e2e7f687b0eec38f0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.4

Release files / sopel_spongemock-1.2.0-py3-none-any.whl

Download URL sopel_spongemock-1.2.0-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7e88d4adcaebea74c3a50fd324055e1c22b49ec6f2c63ca5a01fe94882f1236
BLAKE2b-256 checksum
How to use checksums
996650e18dc7a4eb9325eab92ffdc4f1eee1d74a1af9f0c28df1c1e3e0a82541
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

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