smacademic / project-bdf

project-bdf created by GitHub Classroom
2 stars 0 forks source link

Textify - An Unofficial Reddit Transcription Bot

Textify transcribes text from images posted on Reddit on request. The images may be part of a post on a subreddit, or linked to within a comment. The bot will reply with a comment containing an attempted transcription of the text contained with the image. Here is the guide for requesting transcriptions from Textify.

This Reddit Bot is a part of a project created by 3 students in CS 298-01 at Western Connecticut State University. Development is currently underway and the project is still in its alpha stages. Transcriptions are performed, but the results are not formatted well and often have errors.

Outside collaboration is not currently expected as the project is part of a major graded assignment. However, feedback or suggestions are welcome. The easiest way to make these comments is to send a Reddit inbox message to the /u/TextifyReddit account.

Team Members

Original Project Idea

High Level Description: Social Media OCR Bot

Minimum Requirements:

  1. Ingest content from Reddit using an API
  2. Analyze content from a comment or submission
  3. Generate a post based on the analyzed content. The post should have some markup other than text (hashtags, URLs, Markdown, etc)
  4. Post to Reddit. It is possible that external issues may prevent this from happening, in which case a simulated post is sufficient.

The project as currently implemented meets all the requirements.

Extensions:

Why we chose Reddit

Reddit has a relatively generous public API and is friendly towards non-malicious bots. It also has a variety of content and many already existing bots that can be used for inspiration and guidance (what to do and not to do, e.g. some subreddits do not allow bots).

Reddit API Reddit API Guidlines

Dependencies (tentative)

Installation

NOTE: Due to potential security vulnerabilities the version of pillow used by the bot has been upgraded from 5.4.1 to 6.2.2. This resolves the known vulnerabilities but is untested. Since this involves a change in the major version number, it is possible that breaking changes were introduced by this change.

The installation/deployment procedure for both Windows and Ubuntu is detailed here.

System Architecture

System Architecture Diagram

1.User A posts an image to Reddit

2.User B (who may have visual impairments) posts a comment requesting Textify to process the image

3.The Textify server receives a notification. The image is then processed, utilizing Microsoft Azure to describe an image or translate text (if requested)

4.The Textify server posts a reply containing the transcription to user B’s comment

5.User B receives a notification that Textify has responded with a transcription