Git Product home page Git Product logo

tmdbeasy's Introduction

Hello 👋

I'm Tony.. 1-part South African, 1-part Greek, 3-parts Programmer! Too many parts? 😃

I love coding, when I am not coding I am thinking about coding. Some say I am obsessed with clean code... they may be right!!

🔥 I'm fortunate enough to have an awesome day job where I work as Director of Software Development at MMR Research. Constantly surrounded by an amazing group of people, I get to work mostly on greenfield projects. I like to get my hands dirty and will typically spend about 60-70% of my time programming and architecting solutions, the rest is focused on leading, empowering and growing our Dev Team.

Some bits about me:

  • 🌱 I'm constantly learning everyday.
  • 🚴 I enjoy working out, mountain biking and hiking.
  • 📫 You can contact me via linked-in
  • ⚡ Fun fact: I have never lived continuously in 1 country for longer than 8 years 😄

Some bits I have learnt along the way:

  • Simplicity is key
  • Think twice, code once
  • Fundamentals matter, your Tech-stack doesn't
  • Make sure you are always learning
  • Spend most of your time outside of your comfort zone

Some of my OSS side projects:

  • TmdbEasy - Simple wrapper around The Movie Database Api

Some languages & tools I work or have worked with:

  • C#, C++, Javascript
  • ASP.NET Framework and Core, QT
  • PostgreSql, MSSql
  • Vue.js, jQuery
  • Git, SourceTree, Gitlab, Github, Azure DevOps, Azure, Docker
  • HTML, CSS, SASS

tmdbeasy's People

Contributors

aminchew avatar polakosz avatar tonykaralis avatar vpksoft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

tmdbeasy's Issues

Refactor public API and internals

Public API needs some refactoring.

Main priority is improving the developer experience and simplifying the code.

Unit testing is essential

Support for global and per request api key usage

Remove the need for each API to know about the apikey internals.

  1. the user should be able to globally set the api key via TmdbEasyOptions
  2. User should be able to override this and provide a user specific key per request

Both options are necessary. The api for this needs to be clean and simple to use.

@PoLaKoSz linking you as a reference as you were heavily requesting for option 2. Both will be addressed in #17

ChangeList does not return consistent results

When querying the MovieApi for a ChangeList one of the nested properties does not return a consistent value which results in the json deserialization to fail.

List<Change> result = await apiUnderTest.GetChangesAsync(id, "30/05/2019", "20/05/2019", apiKey: _userApiKey);
    public class Change
    {
        public string Key { get; set; }
        public List<Item> Items { get; set; }
    }

    public class Item
    {
        public string Id { get; set; }
        public string Action { get; set; }
        public string Time { get; set; }
        public string Iso_639_1 { get; set; }
        public string Value { get; set; }      // offending properties
        public string Original_value { get; set; }     // offending properties
    }

The Value and Original_value can take the following shape within the raw JSON. There may be more, but these are the ones encountered so far.

"value": {
        "iso_3166_1": "NL",
        "iso_639_1": "",
          "release_date": "2004-08-04",
          "certification": "16",
          "type": 5,
          "note": "DVD"
}

or

"value": {
        "backdrop": {
           "file_path": "/aEdy9BNNdg6qwjyHIbVTflZDFb2.jpg"
         }
    }

or

"value": "Комиксовият герой е с чисто нов, вече с черен костюм, който напълно отгов",

Investigate an upgrade to include TMDb v4 api

API used needs to be upgraded to TMDBs v4.

The changes required for this might not be part of v1, this is more of a scoping task. However if I have time I will attempt to add support for v4.

Ideal would be to maintain support for v3 as well as v4 and give users the option to configure which version to use via a simple switch. the rest of the api should be identical.

Misconfigured URL in the ConfigApi.cs

There is an extra slash (/) character in the line 16 of the ConfigApi.cs file which leads to an exception: "Movie Id does not exist".

The code is as follows:
var content = await CallApiAsync($"{Url}configuration/?api_key={ApiKey}").ConfigureAwait(false)

Should be corrected to:
var content = await CallApiAsync($"{Url}configuration?api_key={ApiKey}").ConfigureAwait(false);

v1 - Refactor/Upgrade

Looking to refresh this lib, improve developer experience and put some effort into making it play nicely with ASP.NET Core.

Roadmap:
Add support for asp.net core dependency injection
Refactor to clean SOLID standards
Address any async issues
Refactor internals
Improve developer experience
Update readme, add docs if necessary
Extend library to include more endpoints
Potentially move to v4 of TMDB
Heads up to any users that v1 will most likely include some major breaking changes

See project for details https://github.com/tonykaralis/TMdbEasy/projects/1

Add support for .NET Core Dependency injection

  1. Key passed in via constructor -> needs to change to some config
  2. Give users ability to register serviced with DI (refactors classes and interfaces)
  3. Provide a default .UseTmDbEasy() Extension method for use in startup

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.