Metadata-Version: 2.1
Name: davebot
Version: 1.0.1
Summary: A screenplay bot
Home-page: https://github.com/DED8IRD/D.A.V.E
Author: Eunika Wu
Author-email: eunika@pdxcodeguild.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: beautifulsoup4 (==4.8.0)
Requires-Dist: fpdf (==1.7.2)
Requires-Dist: markovify (==0.7.2)
Requires-Dist: requests (==2.22.0)

# D.A.V.E.
Meet DAVE, the screenwriting bot. 
DAVE generates formatted screenplays from other screenplays.


## Install
```
pip install davebot
```

## Use
### Stanley module
#### Generate screenplays
`DAVE.nlp.Stanley` uses all the modules below (except web scraping) to generate formatted screenplays (PDF and plaintext).

Example:
```py
from DAVE.nlp.Stanley import Stanley
characters = ['HAL', 'DAVE', 'Stanley Kubrick', 'Discovery One', 
              'Arthur C. Clarke', 'The Sentinel']
source = ['2001-A-Space-Odyssey.txt', '2012.txt']

director = Stanley(source, characters, destination='output', title='2013', author='DAVE')
director.direct(length=100)
```

DAVE will create two files in the `destination` directory: `<title>.pdf` and `<title>.txt`.

### Scraper module
#### Scraping Screenplays
`DAVE.scraper.DiscoveryOne` scrapes from IMSDB using BeautifulSoup
```py
from DAVE.scraper import DiscoveryOne, Sentinel
DiscoveryOne.crawl(path, directory='.', pattern=GENRE):
```

#### Parse
`DAVE.scraper.Sentinel`  and parses screenplays into subsections: headings, transitions, actions, parentheticals, and dialogue, to be further prepared into Markov models.
```py
Sentinel.parse(*sources, destination='.', write=True)
```

Or, parse recursively using `Sentinel.parse_directory`
```py
Sentinel.parse_directory(source='.', destination='parsed_categories', genre='All')`
```

### NLP module
#### Serialize markov models
`DAVE.nlp.HAL` generates Markov chains from the parsed categories made by `DAVE.scraper.Sentinel` and serializes the models into JSON.

To create the Markov models:
```py
from DAVE.nlp.HAL import HAL
HAL.generate_models(source='parsed_categories', destination='.')
```


## Inspiration
#### A Space Odyssey
Inspiration from the name D.A.V.E. came from Stanley Kubrick's masterpiece film *2001: A Space Odyssey*. The names of this package's modules all reflect characters, creators, texts, and important people involved in A Space Odyssey. 


#### Sunspring
The original inspiration for this project comes from a short science fiction film: *Sunspring*.

Description (from Ars Technica):

> In the wake of Google's AI Go victory, filmmaker Oscar Sharp turned to his technologist collaborator Ross Goodwin to build a machine that could write screenplays. They created "Jetson" and fueled him with hundreds of sci-fi TV and movie scripts. Building a team including Thomas Middleditch, star of HBO's Silicon Valley, they gave themselves 48 hours to shoot and edit whatever Jetson decided to write.


<a href="http://www.youtube.com/watch?feature=player_embedded&v=LY7x2Ihqjmc" target="_blank"><img src="http://img.youtube.com/vi/LY7x2Ihqjmc/0.jpg" 
alt="Sunspring Short Film" width="240" height="180" border="10" /></a>

Click the image above to see the full video.


