+-----------------------+
| |
| Web UI (this repo) |
| |
+-----------+-----------+
|
|
+-----------v-----------+ +-------------------------+ +----------------------+
| | | | | |
| `not-my-artists` API +-------> `send-alert` +--------> email |
| | | | | |
+-----------^-----------+ +------------^------------+ +----------------------+
| |
| |
+-----------v-----------+ |
| | |
| configuration tables | |
| | |
+-----------------------+ |
|
+------------+-------------+
| |
| Last.fm API |
| |
+--------------------------+
The core of the solution is the repository last-fm-not-mine-alert-func. It contains two Azure functions:
send-alert
(timer trigger) - fetching information from Last.fm API and sending email alertsnot-my-artists
(HTTP trigger) - API to access the configuration stored in Azure Storage tables
.NET Core supports the names of Unicode blocks in regular expressions, so there's no need to specify every diacritic character explicitly.
- Unicode block names for use with the
\p
token - Unicode regular expressions
- "Latin-1 Supplement" Unicode block
- Introduction to Razor Pages in ASP.NET Core
- Safe storage of app secrets in development in ASP.NET Core
- Example Code - Opinionated ContosoUniversity on ASP.NET Core 2.0's Razor Pages (lots if useful links in the article)
- (!!) Read about authentication and authorization in .NET Core - what will be easy to implement? Some standard implementation to replace the current custom one.
- By default, App Service provides authentication but does not restrict authorized access to your site content and APIs. You must authorize users in your app code.
- https://docs.microsoft.com/gl-es/azure/app-service/app-service-authentication-overview#user-claims
- https://github.com/aspnet/Docs/tree/master/aspnetcore/security/authorization/razor-pages-authorization/samples/2.x/AuthorizationSample
- (!) Show a confirmation that a new entry was added successfully (Success page or jQuery notification?)
- (!) Add a page to list existing artists (new page or Index?)
- Place the label and text box next to each other; make the latter smaller
- Performance of
func
- example call
- Total: 2500ms
- Last.fm: 1500ms
- What's eating up the remaining time?
- example call