https://github.com/mystery-o-matic/mystery-o-matic.github.io Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} mystery-o-matic / mystery-o-matic.github.io Public * Notifications * Fork 4 * Star 68 A daily murder mystery to solve in less than 5 mintes! mystery-o-matic.com License AGPL-3.0 license 68 stars 4 forks Activity Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights mystery-o-matic/mystery-o-matic.github.io This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. code Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 2 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/m] Use Git or checkout with SVN using the web URL. [gh repo clone myster] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @neuromancer neuromancer Use AGPL ... 66ddbfd Nov 23, 2023 Use AGPL 66ddbfd Git stats * 121 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows Update ci.yaml November 9, 2023 23:01 bin initial commit of code June 29, 2023 13:00 config allow to limit the number of slots October 19, 2023 10:05 mystery_o_matic make sure the time of murder can be determined easily November 9, 2023 19:46 scenarios fixes November 5, 2023 18:31 static fixed dark mode logo November 10, 2023 08:53 story @ 84e54aa added basic code to load story clues July 15, 2023 15:26 .gitignore initial commit of code June 29, 2023 13:00 .gitmodules added basic code to load story clues July 15, 2023 15:26 LICENSE Use AGPL November 23, 2023 19:27 README.md improved and updated README November 23, 2023 16:41 setup.py renamed module and executable name October 14, 2023 14:30 View code mystery-[?][?]-matic Installation Usage Scenarios README.md mystery-[?][?]-matic mystery-o-matic is a Python program used to produce the content of mystery-o-matic.com. It produces a random murdery mystery to solve using fuzzing testing. Once a mystery is generated, it produces a static html file which contains all the clues (and the solution to verify it). Installation Make sure all the requirements are installed. If you are using Ubuntu: sudo apt-get install libsecp256k1-0 graphviz graphviz-dev Solidity 0.8.x is needed, so we can install solc-select for that: pip install solc-select solc-select install 0.8.17 solc-select use 0.8.17 Finally, install the tool from this repository: pip install . mystery-o-matic requires the usage of echidna for obtaining a random mystery prompt and its solution, but uses a specific PR that was not merged yet. For convenience, there is a precompiled binary provided in the bin folder. Otherwise, it can be compiled from source code using stack or nix. Usage mystery-o-matic will always generate a fresh mystery to solve, but depending on the output mode (--mode) will produce different results: * html: it will generate a local copy of mystery-o-matic.com which contains the description of the case, some clues as well as the solution. * text: it will start an interactive version of murder mystery to solve by command It can also start a Telegram bot if an API key is provided. By default it will use the html output to generate a new mystery in the default scenario: mystery-o-matic scenarios/simple.template.sol static out The tool will produce a static index.html file stored in the out directory. Scenarios The tool provides a single scenario for creating a random murder mystery, where the rules are encoded in the scenarios/ simple.template.sol file, but others could be added. In order to add a new scenario: * Create a Solidity smart contract called StoryModel * Encode the rules to advance every step of the story. Clues are generated using events such as SawWhenLeaving and SawWhenArriving but others can be added as well. * Add an Echidna boolean property should be added mystery_not_solved (which returns false when all the steps to complete a mystery are done) About A daily murder mystery to solve in less than 5 mintes! mystery-o-matic.com Topics html5 telegram-bot fuzzing murder-mystery Resources Readme License AGPL-3.0 license Activity Stars 68 stars Watchers 1 watching Forks 4 forks Report repository Releases No releases published Packages 0 No packages published Languages * Python 48.0% * HTML 23.8% * JavaScript 16.4% * Solidity 8.0% * CSS 3.8% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.