Giter VIP home page Giter VIP logo

tagzapp's People

Contributors

acidrod avatar csharpfritz avatar czemacleod avatar degenone avatar elliottbrand avatar eric-vanartsdalen avatar github-actions[bot] avatar jbraunsmajr avatar jedelfraisse avatar johanbenschop avatar mcnets avatar mogas avatar mpaulosky avatar napalm684 avatar nickspaghetti avatar ryanshaut avatar sql-mistermagoo avatar stelzi79 avatar szalapski avatar thindaltv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tagzapp's Issues

Feature: Gravatar for users

Let's add a gravatar for the users of the application so that when multiple users are working on the moderation screen, we can see who is actively reviewing content with a nice profile pic

Help: StubMediaProvider for testing

To help make the webtests reliable and repeatable, we should have a StubMediaProvider that we can configure when running WebTests with Playwright.

Additional CSS themes

Administrators should be able to choose for a preselected theme like light mode and dark mode or upload their own CSS stylesheet to be applied

TikTok API

TikTok has a Research API that can query the field hashtag_name for videos, user info or comments.

They give an example:

curl -L -X POST 'https://open.tiktokapis.com/v2/research/video/query/?fields=id,video_description,create_time' \
-H 'Authorization: Bearer clt.1234asd2387jedyghgs4easd1234asdf84jenryhdlasuie4jh' \
-H 'Content-Type: application/json' \
--data-raw '{
    "query": {
        "and": [
            {
                "operation": "IN",
                "field_name": "region_code",
                "field_values": ["JP", "US"]
            },
            {
                "operation":"EQ",
                "field_name":"hashtag_name",
                "field_values":["animal"]
            }
        ],
        "not": [
          {
                "operation": "EQ",
                "field_name": "video_length",
                "field_values": ["SHORT"]
           }
        ]
    },
    "max_count": 100,
    "cursor": 0,
    "start_date": "20230101",
    "end_date": "20230115"
}'

I tried to find discussion about using the API on reddit and there are some accounts of people having issues with getting their apps approved. 1 2 I have not tried it myself, hopefully it's not going to be an issue.

Feature: UI separation

Let's separate the user interface into three distinct pages to allow for the growth of the application:

  • Index (Configuration) page at / with the ability to define a tag to be watched
  • Overlay page at /overlay that shows an overlay for the tag specified on the route
  • Waterfall display page at /waterfall that shows the message waterfall currently on the index page

DiscordBot Provider?

It was suggested that we also provide a DiscordBot implementation that watches a specific chatroom on a server and surfaces questions from that chatroom

Create an API to download data from TagzApp

Create an API that enables the user to download the data from TazApp persistent store given:

  • An API key/Bearer JWT Token in the request
  • Rate Limiting if req.
  • Maybe just the one GET endpoint, with query params: tagToSearch, startDateTime, endDateTime (optional), recordLimit, pageNum, providersList (optional default to all). Output: Enumerable (just json) for the given query.

Potential Prerequisites:

  • Data is getting persisted into a permanent store.
  • Possibly an ORM is already in place for interacting with the permanent data store.
  • AuthN/R provider for in a place, or at least an API Key to begin with
  • Possible way to signup for the

In-App configuration

We should provide administrative screens that allow for the choice of various configuration options:

  • Which providers should be running
  • Which hashtags should be monitored
  • Which channels on YouTube, Twitch, Discord, etc should be monitored along with additional filter criteria
  • Configuration of the authentication for those providers

Fix solution file links

Summary

When I loaded the solution in Rider I noticed that the solution files were not found.

Screenshots

Screenshot from 2023-07-18 12-07-47

Website Q+A Provider

Let's add a simple provider that takes questions from a database / storage queue and adds them to the collection

Tagging @jglozano who is building the client-side piece of this

Overlay Message display

A stand-alone display appropriate to use for a Tricaster or OBS to overlay content chosen

Feature: Ban users per platform

For a social media platform, we should allow administrators and moderators to maintain a list of accounts that are 'banned' and their messages will not be read by TagzApp

TwitchChat should display emotes

We should support Twitch global emotes and a validation that users can post and use channel emotes in their messages.

Emotes should flow through to the UI using the Content.Emotes element

Build: Need an output that builds a container

To help allow others to run their own TagzApp, a PR merge into main should build a container for the TagzApp.Web application

  • Should apply a proper version number to the container
  • Push container to a shared repository on Github.com/FritzAndFriends
  • Apply a tag number and a GitHub release for the container

Moderation of content

We should be able to choose content to promote to screen

Proposed architecture enhancements:

image

Implement resiliency with Polly in the HttpClient

Let's make sure our HttpClient interactions with the social media providers are configured with some resiliency and take advantage of headers and compression properly.

This should land in a TagzApp.Communication class library project so that it can be shared between microservices that we create to run the service

Twitter Provider

Twitter (or X) is still the premiere service that folks want to be able to work with. We'll need to make this 'activatable' as interacting with the API for this service is a paid feature.

UI: Modal dialogue animation

It would be nice to have the modal window on the waterfall UI open with this animation:

  • Card back back is facing forward with a color and logo on the back
  • Card spins (horizontally or vertically) 180 degrees to show the content
  • When closed, card 'minimizes' or zooms back to the original size in the masonry layout

Something like this effect when clicking on a message: https://www.w3schools.com/howto/howto_css_flip_card.asp

Feature: Configuration for providers

We need a standard API for defining configuration for providers and options classes that can be injected and used by providers when API keys or other credentials are required.

Use Reflection to dynamically load provider

Search the DLLs in a folder, find objects that implement IConfigureProvider and configure those providers dynamically using the ServiceExtensions.ConfigureProvider method

Feature: Waterfall Display

Use a masonry-style layout to display approved messages in a pseudo-infinite scroll interaction.

Newest messages at the top, displayed left-to-right.

Related to #46

LinkedIn API provider

I was trying to create my own API key to test LinkedIn services but it requieres a Linkedin Company Page associated to the App.

"The LinkedIn Company Page you select will be associated with your app. Verification can be done by a Page Admin. Please note this cannot be a member profile page. Learn more"

The app can be registered here

Maybe @csharpfritz could create a MyTagg company page and authorize the API keys that we can create and use for development.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.