diff --git a/.idea/.idea.c3stream/.idea/contentModel.xml b/.idea/.idea.c3stream/.idea/contentModel.xml
index 6cd4556..80798a6 100644
--- a/.idea/.idea.c3stream/.idea/contentModel.xml
+++ b/.idea/.idea.c3stream/.idea/contentModel.xml
@@ -11,12 +11,6 @@
-
-
-
-
-
-
diff --git a/Pages/Conference.cshtml b/Pages/Conference.cshtml
index 0ca296f..681963f 100644
--- a/Pages/Conference.cshtml
+++ b/Pages/Conference.cshtml
@@ -21,14 +21,17 @@
return;
}
- if (Request.Query.ContainsKey("bookmark") && HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- HttpContext.Session.SetString("bookmark", Request.Query["bookmark"]);
+ if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + Request.Query["bookmark"]);
}
- if (!HttpContext.Session.Keys.Contains("bookmark") || !Guid.TryParseExact(HttpContext.Session.GetString("bookmark"), "D", out _)) {
- HttpContext.Session.SetString("bookmark", Guid.NewGuid().ToString());
+ else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
+ var guid = Guid.NewGuid().ToString();
+ Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + guid);
}
- if (!Request.Query.ContainsKey("bookmark") || HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + HttpContext.Session.GetString("bookmark") + (Request.Query["orderby"] == "published" ? "&orderby=published" : ""));
+ else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Redirect("/Conference?c=" + Request.Query["c"] + "&bookmark=" + Request.Cookies["bookmark"]);
}
ViewData["Title"] = Request.Query["c"];
@@ -62,8 +65,8 @@
metadata = GetEvent(talk.Guid?.ToString());
EventMetadata.Add(metadata);
}
- var isWatched = EventMetadata.Any(p => p.Guid == talk.Guid?.ToString() && p.State.FirstOrDefault(q => q.Guid == HttpContext.Session.GetString("bookmark"))?.State == "watched");
- var isMarked = EventMetadata.Any(p => p.Guid == talk.Guid?.ToString() && p.State.FirstOrDefault(q => q.Guid == HttpContext.Session.GetString("bookmark"))?.State == "marked");
+ var isWatched = EventMetadata.Any(p => p.Guid == talk.Guid?.ToString() && p.State.FirstOrDefault(q => q.Guid == Request.Cookies["bookmark"])?.State == "watched");
+ var isMarked = EventMetadata.Any(p => p.Guid == talk.Guid?.ToString() && p.State.FirstOrDefault(q => q.Guid == Request.Cookies["bookmark"])?.State == "marked");
var file = metadata.Talk.Recordings.FirstOrDefault(p => System.IO.File.Exists(System.IO.Path.Combine(c3stream.CachePath, conference.Acronym, p.Filename)));
var eventName = talk.Tags[0].Replace("-", "-
");
var category = tagFormat switch {
diff --git a/Pages/Conference.cshtml.cs b/Pages/Conference.cshtml.cs
index ecee642..eb20432 100644
--- a/Pages/Conference.cshtml.cs
+++ b/Pages/Conference.cshtml.cs
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
-using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
@@ -16,17 +15,16 @@ namespace c3stream.Pages {
public void OnGet() {
var guid = Request.Query["guid"];
var state = Request.Query["state"];
- if (string.IsNullOrWhiteSpace(guid) || string.IsNullOrWhiteSpace(state) || !HttpContext.Session.Keys.Contains("bookmark"))
+ if (string.IsNullOrWhiteSpace(guid) || string.IsNullOrWhiteSpace(state) || !Request.Cookies.ContainsKey("bookmark"))
return;
lock (c3stream.Lock) {
ReadEventMetadata();
- var existing = EventMetadata.FirstOrDefault(p => p.Guid == guid)
- ?.State.FirstOrDefault(p => p.Guid == HttpContext.Session.GetString("bookmark"));
+ var existing = EventMetadata.FirstOrDefault(p => p.Guid == guid)?.State.FirstOrDefault(p => p.Guid == Request.Cookies["bookmark"]);
if (existing != null)
existing.State = state;
else
- EventMetadata.FirstOrDefault(p => p.Guid == guid)?.State.Add(new UserState(HttpContext.Session.GetString("bookmark"), state));
+ EventMetadata.FirstOrDefault(p => p.Guid == guid)?.State.Add(new UserState(Request.Cookies["bookmark"], state));
WriteEventMetadata();
Response.Redirect("/");
}
diff --git a/Pages/Index.cshtml b/Pages/Index.cshtml
index 27ba47f..df1a29e 100644
--- a/Pages/Index.cshtml
+++ b/Pages/Index.cshtml
@@ -3,25 +3,28 @@
@model IndexModel
@{
ViewData["Title"] = "Home";
- if (Request.Query.ContainsKey("bookmark") && HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- HttpContext.Session.SetString("bookmark", Request.Query["bookmark"]);
+ if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/?bookmark=" + Request.Query["bookmark"]);
}
- if (!HttpContext.Session.Keys.Contains("bookmark") || !Guid.TryParseExact(HttpContext.Session.GetString("bookmark"), "D", out _)) {
- HttpContext.Session.SetString("bookmark", Guid.NewGuid().ToString());
+ else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
+ var guid = Guid.NewGuid().ToString();
+ Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/?bookmark=" + guid);
}
- if (!Request.Query.ContainsKey("bookmark") || HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- Response.Redirect("/?bookmark=" + HttpContext.Session.GetString("bookmark"));
+ else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Redirect("/?bookmark=" + Request.Cookies["bookmark"]);
}
}
Welcome to c3stream!
Your bookmark link:
-
https://@Request.Host.Value?bookmark=@HttpContext.Session.GetString("bookmark")
+
https://@Request.Host.Value?bookmark=@Request.Cookies["bookmark"]
\ No newline at end of file
diff --git a/Pages/Info.cshtml b/Pages/Info.cshtml
index d1f90c5..d296fe7 100644
--- a/Pages/Info.cshtml
+++ b/Pages/Info.cshtml
@@ -10,14 +10,17 @@
return;
}
- if (Request.Query.ContainsKey("bookmark") && HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- HttpContext.Session.SetString("bookmark", Request.Query["bookmark"]);
+ if (Request.Query.ContainsKey("bookmark") && Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Cookies.Append("bookmark", Request.Query["bookmark"], new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + Request.Query["bookmark"]);
}
- if (!HttpContext.Session.Keys.Contains("bookmark") || !Guid.TryParseExact(HttpContext.Session.GetString("bookmark"), "D", out _)) {
- HttpContext.Session.SetString("bookmark", Guid.NewGuid().ToString());
+ else if (!Request.Cookies.ContainsKey("bookmark") || !Guid.TryParseExact(Request.Cookies["bookmark"], "D", out _)) {
+ var guid = Guid.NewGuid().ToString();
+ Response.Cookies.Append("bookmark", guid, new CookieOptions {Expires = DateTimeOffset.MaxValue});
+ Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + guid);
}
- if (!Request.Query.ContainsKey("bookmark") || HttpContext.Session.GetString("bookmark") != Request.Query["bookmark"]) {
- Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + HttpContext.Session.GetString("bookmark"));
+ else if (!Request.Query.ContainsKey("bookmark") || Request.Cookies["bookmark"] != Request.Query["bookmark"]) {
+ Response.Redirect("/Info?guid=" + Request.Query["guid"] + "&bookmark=" + Request.Cookies["bookmark"]);
}
ConferenceModel.ReadEventMetadata();
@@ -34,8 +37,8 @@
description = "<missing description>";
}
- var isWatched = talk.State.FirstOrDefault(q => q.Guid == HttpContext.Session.GetString("bookmark"))?.State == "watched";
- var isMarked = talk.State.FirstOrDefault(q => q.Guid == HttpContext.Session.GetString("bookmark"))?.State == "marked";
+ var isWatched = talk.State.FirstOrDefault(q => q.Guid == Request.Cookies["bookmark"])?.State == "watched";
+ var isMarked = talk.State.FirstOrDefault(q => q.Guid == Request.Cookies["bookmark"])?.State == "marked";
var file = talk.Talk.Recordings.FirstOrDefault(p => System.IO.File.Exists(System.IO.Path.Combine(c3stream.CachePath, talk.Talk.ConferenceUrl.AbsoluteUri.Split("/").Last(), p.Filename)));
var eventName = talk.Talk.Tags[0].Replace("-", "-
");
diff --git a/Startup.cs b/Startup.cs
index a907fdb..2e92ba1 100644
--- a/Startup.cs
+++ b/Startup.cs
@@ -1,4 +1,3 @@
-using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
@@ -14,10 +13,6 @@ namespace c3stream {
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) {
services.AddRazorPages();
- services.AddSession(opts => {
- opts.Cookie.Name = "bookmark";
- opts.IdleTimeout = TimeSpan.MaxValue;
- });
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -29,7 +24,6 @@ namespace c3stream {
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseStaticFiles();
- app.UseSession();
app.UseRouting();
diff --git a/c3stream.csproj b/c3stream.csproj
index 92812a4..29d31c4 100644
--- a/c3stream.csproj
+++ b/c3stream.csproj
@@ -11,6 +11,25 @@
<_ContentIncludedByDefault Remove="data\database.json" />
<_ContentIncludedByDefault Remove="data\_c3stream.json" />
+ <_ContentIncludedByDefault Remove="data\33c3.json" />
+ <_ContentIncludedByDefault Remove="data\34c3.json" />
+ <_ContentIncludedByDefault Remove="data\35c3.json" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+