Skip to main content

Remove spoilers from files.

Project description

Despoilerizer

This script reads from stdin and prints out the contents of stdin to stdout, without the lines that are in between the :SPOILERS BEGIN: and the :SPOILERS END: tags.

It uses stdin and stdout so that it can be easily integrated in bash scripting, for instance:

$ <my_file.tex | python -m despoilerizer | pdflatex

You can also redefine the tags:

$ <my_file.tex | \
  python -m despoilerizer --begin="# spoiler" --end="# unspoiler" | \
  pdflatex

Installation

$ pip install despoilerizer

Examples

stdin

This is a simple file.
:SPOILERS BEGIN:
It contains spoilers.
:SPOILERS END:
And also other information.

stdout

This is a simple file.
And also other information.

stdin

\begin{document}
% :SPOILERS BEGIN:
important stuff...
% :SPOILERS END:
\end{document}

stdout

\begin{document}
\end{document}

Usage as importable package

import despoilerizer
from pathlib import Path as P

for path in [P('file1.tex'), P('file2.py'), P('file3.txt')]:
    out_path = P(path.stem + '_nospoilers' + path.suffix)
    with open(path, 'r') as fin:
        with open(out_path, 'w') as fout:
            despoilerizer.despoilerize_file(fin, fout)


contents = """
This is a very important string.
such spoilers
I really don't want anyone to know.
much wow
"""

with open(P('some_file.txt'), 'w') as f:
    f.write(
        despoilerizer.despoilerize(contents, begin='such spoilers', end='much wow')
    )

Motivation

I have a LaTeX file for a document I'm sharing with my friends. This document contains some information for a DnD campaign both for stuff the players have encountered and stuff that's being worked on.

Therefore, I want to have two different PDF documents: one with the spoilers and one without them.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

despoilerizer-1.0.1.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

despoilerizer-1.0.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file despoilerizer-1.0.1.tar.gz.

File metadata

  • Download URL: despoilerizer-1.0.1.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.6.11-arch1-1

File hashes

Hashes for despoilerizer-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a2431b884894f60ce2ef817cfdbed889b304156357e96eac127f50c620b32fec
MD5 c85f6578247b25d9aa661cb08524387a
BLAKE2b-256 3e7c9d55a4c2e443b88d9710470e9216f90913020ea87dd072515268194e2b88

See more details on using hashes here.

File details

Details for the file despoilerizer-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: despoilerizer-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.6.11-arch1-1

File hashes

Hashes for despoilerizer-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47af32465591e8cc22579822ea475a46304c8c91e30e310b01772d57e27bd9aa
MD5 0e03bd890683a2e684c29763b5b45dab
BLAKE2b-256 c7600dbe323587480de380bba81db0ffdaf88720c6335f05b0422b964ba36d51

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page