This project was terminated prematurely. During the very first round of permission questions, the mods of /r/WritingPrompts did ban the bot. I was told that I should've asked the community first if there is acceptance. I couldn't convince the mods to let me ask them after the fact. Unless anybody else can ask if /r/WritingPrompts wants an E-Book bot, there is no reason for me to finish this project.
Register an account at AWS and create a S3 bucket with public read access. Create an identity with write access to that bucket. Set these properties in application.properties:
- jclouds.identity: Access key ID
- jclouds.credential: Secret Access key ID
- jclouds.formats.container: bucket name
Register an account at reddit. Create an application as described in https://github.com/reddit/reddit/wiki/OAuth2-Quick-Start-Example. Set these properties in application.properties:
- reddit.auth.username: user name
- reddit.auth.password: password
- reddit.auth.clientId: App's client id
- reddit.auth.clientSecret: App's client secret
- Integrate blocking Reddit API to respect their rate limit
- Choose an event handler system (e.g. Spring or Akka)
- Implement PublicationPermitted handler in PublishCommentAsEBookApplicationService.publish()
- Implement EBookPublished handler in PublishEBookApplicationService.publish()
- Implement EBookRevoked handler in UnpublishEBookApplicationService.unpublish()
- Design model
- Implement PublishRedditCommentApplicationService
- Implement UnpublishEBookApplicationService
- Implement RedditCommentRepository
- Implement EBookFactory for EPUB
- Implement EBookFactory for MOBI
- Implement PublishedFormatJCloudsRepository
- Implement an integration test for publishing a comment on S3
- Design model
- UC: Identify new comments and ask author for permission
- UC: Understand author's permission reply and start EBook publication
- UC: Understand author's unpublish wish and start Unpublishing
- Implement InboxMessageRepository
- Implement NLPService
- Implement WritingPromptRepository
- Implement AnswerCommentService
This project is free and under the WTFPL. Responsible for this project is Markus Malkusch [email protected].