2024-02-25 12:15:55 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2010-11-19 16:24:17 -05:00
|
|
|
class StaticController < ApplicationController
|
2022-05-04 14:33:31 -04:00
|
|
|
def privacy
|
2025-01-28 10:22:30 -05:00
|
|
|
@page = format_wiki_page("help:privacy_policy")
|
2022-05-04 14:33:31 -04:00
|
|
|
end
|
|
|
|
|
2011-12-29 17:34:46 -05:00
|
|
|
def terms_of_service
|
2025-01-28 10:22:30 -05:00
|
|
|
@page = format_wiki_page("help:terms_of_service")
|
2023-01-26 15:19:26 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def contact
|
2025-01-28 10:22:30 -05:00
|
|
|
@page = format_wiki_page("help:contact")
|
2023-01-26 15:19:26 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def takedown
|
2025-01-28 10:22:30 -05:00
|
|
|
@page = format_wiki_page("help:takedown")
|
2024-08-03 17:15:26 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def avoid_posting
|
2025-01-28 10:22:30 -05:00
|
|
|
@page = format_wiki_page("help:avoid_posting_notice")
|
2011-12-29 17:34:46 -05:00
|
|
|
end
|
2019-09-25 18:56:17 -04:00
|
|
|
|
2025-01-26 09:26:23 -05:00
|
|
|
def subscribestar
|
|
|
|
@page = format_wiki_page("e621:subscribestar")
|
|
|
|
end
|
|
|
|
|
2016-08-30 17:42:01 -04:00
|
|
|
def not_found
|
2021-03-21 14:08:07 -04:00
|
|
|
render "static/404", formats: [:html], status: 404
|
2016-08-30 17:42:01 -04:00
|
|
|
end
|
|
|
|
|
2013-02-22 14:45:39 -05:00
|
|
|
def error
|
|
|
|
end
|
2017-04-24 15:58:46 -04:00
|
|
|
|
|
|
|
def site_map
|
|
|
|
end
|
2020-02-02 16:50:20 -05:00
|
|
|
|
2020-03-15 04:37:12 -04:00
|
|
|
def home
|
|
|
|
render layout: "blank"
|
|
|
|
end
|
|
|
|
|
2020-03-30 19:48:24 -04:00
|
|
|
def theme
|
|
|
|
end
|
|
|
|
|
2020-03-01 11:30:41 -05:00
|
|
|
def disable_mobile_mode
|
2024-02-23 10:48:56 -05:00
|
|
|
if CurrentUser.is_member?
|
2020-03-01 11:30:41 -05:00
|
|
|
user = CurrentUser.user
|
|
|
|
user.disable_responsive_mode = !user.disable_responsive_mode
|
|
|
|
user.save
|
|
|
|
else
|
|
|
|
if cookies[:nmm]
|
|
|
|
cookies.delete(:nmm)
|
|
|
|
else
|
|
|
|
cookies.permanent[:nmm] = '1'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
redirect_back fallback_location: posts_path
|
|
|
|
end
|
|
|
|
|
2020-02-02 16:50:20 -05:00
|
|
|
def discord
|
|
|
|
unless CurrentUser.can_discord?
|
2020-03-05 16:55:00 -05:00
|
|
|
raise User::PrivilegeError.new("You must have an account for at least one week in order to join the Discord server.")
|
2020-02-02 16:50:20 -05:00
|
|
|
return
|
|
|
|
end
|
|
|
|
if request.post?
|
|
|
|
time = (Time.now + 5.minute).to_i
|
|
|
|
secret = Danbooru.config.discord_secret
|
|
|
|
# TODO: Proper HMAC
|
|
|
|
hashed_values = Digest::SHA256.hexdigest("#{CurrentUser.name} #{CurrentUser.id} #{time} #{secret}")
|
|
|
|
user_hash = "?user_id=#{CurrentUser.id}&username=#{CurrentUser.name}&time=#{time}&hash=#{hashed_values}"
|
|
|
|
|
2022-11-24 19:56:09 -05:00
|
|
|
redirect_to(Danbooru.config.discord_site + user_hash, allow_other_host: true)
|
2020-02-02 16:50:20 -05:00
|
|
|
end
|
|
|
|
end
|
2024-08-03 17:15:26 -04:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def format_wiki_page(name)
|
2024-08-04 15:35:46 -04:00
|
|
|
wiki = WikiPage.titled(name)
|
2024-08-03 17:15:26 -04:00
|
|
|
return WikiPage.new(body: "Wiki page \"#{name}\" not found.") if wiki.blank?
|
|
|
|
wiki
|
|
|
|
end
|
2010-11-19 16:24:17 -05:00
|
|
|
end
|