{"id":21318987,"url":"https://github.com/emingenc/storyverse","last_synced_at":"2026-01-26T12:03:28.699Z","repository":{"id":257823907,"uuid":"871749604","full_name":"emingenc/storyverse","owner":"emingenc","description":"StoryVerse is a version control system for interactive, branching time-travel stories. It provides a Git-like approach to managing story content, allowing for immutable history, branching timelines, and easy version tracking.","archived":false,"fork":false,"pushed_at":"2024-10-12T22:26:57.000Z","size":14,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-20T08:59:20.330Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emingenc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-12T20:35:06.000Z","updated_at":"2024-10-12T23:12:24.000Z","dependencies_parsed_at":"2024-10-12T23:17:05.594Z","dependency_job_id":"828c8d66-8a98-4d92-9806-f5cf6c7c9881","html_url":"https://github.com/emingenc/storyverse","commit_stats":null,"previous_names":["emingenc/storyverse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emingenc%2Fstoryverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emingenc%2Fstoryverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emingenc%2Fstoryverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emingenc%2Fstoryverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emingenc","download_url":"https://codeload.github.com/emingenc/storyverse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225791361,"owners_count":17524770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T19:30:51.159Z","updated_at":"2026-01-26T12:03:28.652Z","avatar_url":"https://github.com/emingenc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StoryVerse\n\nStoryVerse is a version control system for interactive, branching time-travel stories. It provides a Git-like approach to managing story content, allowing for immutable history, branching timelines, and easy version tracking.\n\n## Installation\n\nYou can install StoryVerse using pip:\n\n```bash\npip3 install storyverse\n```\n\n## Quick Start\n\nTo initialize a new StoryVerse repository:\n\n\n```bash\nstoryverse init [path]\n```\n\n### Basic Usage\n\nHere's a simple example of how to use StoryVerse:\n\n```python\nfrom storyverse import StoryVersionControl\n\n# Initialize a new StoryVerse repository\nsvc = StoryVersionControl(\"/path/to/story/repo\")\n\n# Start a new story\ninitial_content = \"Once upon a time in a galaxy far, far away...\"\nmain_branch = svc.add_story_content(initial_content, \"main\", \"Author1\", \"Initial commit\")\n\n# Add to the main storyline\nnext_content = \"A young Jedi embarked on an epic journey...\"\nsvc.add_story_content(next_content, \"main\", \"Author1\", \"Add Jedi's journey\")\n\n# Create an alternate timeline\nsvc.create_new_branch(\"alternate_timeline\", main_branch)\nalternate_content = \"Instead of a Jedi, a Sith Lord rose to power...\"\nsvc.add_story_content(alternate_content, \"alternate_timeline\", \"Author2\", \"Add Sith Lord storyline\")\n\n# View the main timeline\nmain_timeline = svc.get_story_timeline(\"main\")\nfor entry in main_timeline:\n    print(f\"Content: {entry['content']}\")\n    print(f\"Author: {entry['commit'].author}\")\n    print(f\"Message: {entry['commit'].message}\")\n    print(\"---\")\n\n```\n\n## Key Features\n\n- **Immutable History**: Once a piece of content is committed, it cannot be altered or deleted.\n- **Branching**: Create multiple storylines or timelines from any point in the story.\n- **Version Control**: Keep track of all changes and versions of your story.\n- **Author Attribution**: Each piece of content is associated with an author.\n- **Commit Messages**: Add descriptive messages to each story commit.\n\n## Advanced Usage\n\n### Creating a New Branch\n\n```python\nsvc.create_new_branch(\"new_branch_name\", \"commit_hash_to_branch_from\")\n```\n\n### Viewing a Specific Branch's Timeline\n    \n```python\nbranch_timeline = svc.get_story_timeline(\"branch_name\")\n```\n\n### Adding Multiple Story Segments\n    \n```python\n    story_segments = [\n    \"In a world where magic flowed like water...\",\n    \"A young apprentice discovered an ancient tome...\",\n    \"The tome revealed secrets of forgotten spells...\"\n]\n\nfor segment in story_segments:\n    svc.add_story_content(segment, \"branch_name\", \"Author\", f\"Add segment: {segment[:20]}...\")\n```\n\n### Command Line Interface\n\nStoryVerse also provides a command-line interface for basic operations:\n\n```bash\n# Initialize a new repository\nstoryverse init [path]\n\n# Add new content to a branch\nstoryverse add \"Your story content\" --branch main --author \"Your Name\" --message \"Commit message\"\n\n# Create a new branch\nstoryverse branch new_branch_name --from commit_hash\n\n# View timeline of a branch\nstoryverse timeline branch_name\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femingenc%2Fstoryverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femingenc%2Fstoryverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femingenc%2Fstoryverse/lists"}