├── .gitignore ├── LICENSE ├── README.md ├── app ├── controllers │ └── blog │ │ ├── application_controller.rb │ │ ├── blog_controller.rb │ │ ├── posts_controller.rb │ │ ├── robots_controller.rb │ │ ├── secrets_controller.rb │ │ ├── topic_share_tokens_controller.rb │ │ └── topics_controller.rb ├── helpers │ └── blog │ │ └── application_helper.rb ├── jobs │ ├── regular │ │ └── corrupt_a_wish.rb │ └── scheduled │ │ └── blog_update_twitter.rb ├── models │ ├── gpt_rating.rb │ └── topic_share_token.rb ├── serializers │ └── topic_share_token_serializer.rb └── views │ ├── blog │ ├── blog │ │ └── about.html.erb │ ├── posts │ │ └── _post.html.erb │ ├── secrets │ │ ├── new.html.erb │ │ └── show.html.erb │ └── topics │ │ ├── _topic.html.erb │ │ ├── index.atom.builder │ │ ├── index.html.erb │ │ ├── index.rss.builder │ │ ├── show.html.erb │ │ └── sitemap.xml.erb │ └── layouts │ ├── 2col.html.erb │ ├── _navbar.html.erb │ └── _sidebar.html.erb ├── assets ├── javascripts │ └── discourse │ │ ├── components │ │ └── modal │ │ │ └── blog-share-token.gjs │ │ └── initializers │ │ └── blog-topic-actions.js └── stylesheets │ └── blog-share-modal.scss ├── config ├── locales │ ├── client.en.yml │ └── server.en.yml ├── routes.rb └── settings.yml ├── db ├── fixtures │ └── 001-corrupt-a-wish.rb └── migrate │ ├── 20230401125342_create_gpt_ratings.rb │ └── 20241201000001_create_topic_share_tokens.rb ├── lib ├── .gitkeep ├── gpt_dispatcher.rb ├── guardian_patch.rb └── topic_serializer_extension.rb ├── plugin.rb ├── public ├── blog.css ├── copy-code.js └── lightbox.js ├── script └── import_blog.rb └── spec ├── integration └── topic_share_token_integration_spec.rb ├── lib └── guardian_patch_spec.rb ├── models └── topic_share_token_spec.rb ├── requests └── blog │ └── topic_share_tokens_controller_spec.rb └── system └── topic_share_token_access_spec.rb /.gitignore: -------------------------------------------------------------------------------- 1 | gems 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/README.md -------------------------------------------------------------------------------- /app/controllers/blog/application_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/application_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/blog_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/blog_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/posts_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/posts_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/robots_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/robots_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/secrets_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/secrets_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/topic_share_tokens_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/topic_share_tokens_controller.rb -------------------------------------------------------------------------------- /app/controllers/blog/topics_controller.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/controllers/blog/topics_controller.rb -------------------------------------------------------------------------------- /app/helpers/blog/application_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/helpers/blog/application_helper.rb -------------------------------------------------------------------------------- /app/jobs/regular/corrupt_a_wish.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/jobs/regular/corrupt_a_wish.rb -------------------------------------------------------------------------------- /app/jobs/scheduled/blog_update_twitter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/jobs/scheduled/blog_update_twitter.rb -------------------------------------------------------------------------------- /app/models/gpt_rating.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/models/gpt_rating.rb -------------------------------------------------------------------------------- /app/models/topic_share_token.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/models/topic_share_token.rb -------------------------------------------------------------------------------- /app/serializers/topic_share_token_serializer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/serializers/topic_share_token_serializer.rb -------------------------------------------------------------------------------- /app/views/blog/blog/about.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/blog/about.html.erb -------------------------------------------------------------------------------- /app/views/blog/posts/_post.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/posts/_post.html.erb -------------------------------------------------------------------------------- /app/views/blog/secrets/new.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/secrets/new.html.erb -------------------------------------------------------------------------------- /app/views/blog/secrets/show.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/secrets/show.html.erb -------------------------------------------------------------------------------- /app/views/blog/topics/_topic.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/_topic.html.erb -------------------------------------------------------------------------------- /app/views/blog/topics/index.atom.builder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/index.atom.builder -------------------------------------------------------------------------------- /app/views/blog/topics/index.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/index.html.erb -------------------------------------------------------------------------------- /app/views/blog/topics/index.rss.builder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/index.rss.builder -------------------------------------------------------------------------------- /app/views/blog/topics/show.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/show.html.erb -------------------------------------------------------------------------------- /app/views/blog/topics/sitemap.xml.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/blog/topics/sitemap.xml.erb -------------------------------------------------------------------------------- /app/views/layouts/2col.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/layouts/2col.html.erb -------------------------------------------------------------------------------- /app/views/layouts/_navbar.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/layouts/_navbar.html.erb -------------------------------------------------------------------------------- /app/views/layouts/_sidebar.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/app/views/layouts/_sidebar.html.erb -------------------------------------------------------------------------------- /assets/javascripts/discourse/components/modal/blog-share-token.gjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/assets/javascripts/discourse/components/modal/blog-share-token.gjs -------------------------------------------------------------------------------- /assets/javascripts/discourse/initializers/blog-topic-actions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/assets/javascripts/discourse/initializers/blog-topic-actions.js -------------------------------------------------------------------------------- /assets/stylesheets/blog-share-modal.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/assets/stylesheets/blog-share-modal.scss -------------------------------------------------------------------------------- /config/locales/client.en.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/config/locales/client.en.yml -------------------------------------------------------------------------------- /config/locales/server.en.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/config/locales/server.en.yml -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/config/routes.rb -------------------------------------------------------------------------------- /config/settings.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/config/settings.yml -------------------------------------------------------------------------------- /db/fixtures/001-corrupt-a-wish.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/db/fixtures/001-corrupt-a-wish.rb -------------------------------------------------------------------------------- /db/migrate/20230401125342_create_gpt_ratings.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/db/migrate/20230401125342_create_gpt_ratings.rb -------------------------------------------------------------------------------- /db/migrate/20241201000001_create_topic_share_tokens.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/db/migrate/20241201000001_create_topic_share_tokens.rb -------------------------------------------------------------------------------- /lib/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/gpt_dispatcher.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/lib/gpt_dispatcher.rb -------------------------------------------------------------------------------- /lib/guardian_patch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/lib/guardian_patch.rb -------------------------------------------------------------------------------- /lib/topic_serializer_extension.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/lib/topic_serializer_extension.rb -------------------------------------------------------------------------------- /plugin.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/plugin.rb -------------------------------------------------------------------------------- /public/blog.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/public/blog.css -------------------------------------------------------------------------------- /public/copy-code.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/public/copy-code.js -------------------------------------------------------------------------------- /public/lightbox.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/public/lightbox.js -------------------------------------------------------------------------------- /script/import_blog.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/script/import_blog.rb -------------------------------------------------------------------------------- /spec/integration/topic_share_token_integration_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/spec/integration/topic_share_token_integration_spec.rb -------------------------------------------------------------------------------- /spec/lib/guardian_patch_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/spec/lib/guardian_patch_spec.rb -------------------------------------------------------------------------------- /spec/models/topic_share_token_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/spec/models/topic_share_token_spec.rb -------------------------------------------------------------------------------- /spec/requests/blog/topic_share_tokens_controller_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/spec/requests/blog/topic_share_tokens_controller_spec.rb -------------------------------------------------------------------------------- /spec/system/topic_share_token_access_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamSaffron/blog/HEAD/spec/system/topic_share_token_access_spec.rb --------------------------------------------------------------------------------