Forráskód Böngészése

fix character images

Kylie Jo Swistak 5 éve
szülő
commit
16e2363825

+ 1 - 0
app/app_forms/app_form.rb

@@ -30,6 +30,7 @@ class ApplicationForm
       member = event.server.member(star.id)
       return true if Util::Roles.admin?(member)
     end
+    return false
   end
 
   def self.remove(event)

+ 2 - 2
app/app_forms/character_app.rb

@@ -7,7 +7,7 @@ class CharacterApplication < ApplicationForm
       maj = majority(event)
 
       reactions = event.message.reactions
-      if reactions[Emoji::Y]&.count.to_i > maj && star(event)
+      if reactions[Emoji::Y]&.count.to_i > 1 && star(event)
         approve(event)
       elsif reactions[Emoji::N]&.count.to_i > maj
         deny(event)
@@ -29,7 +29,7 @@ class CharacterApplication < ApplicationForm
 
     # Save character and default image
     character = CharacterController.edit_character(app)
-    ImageController.default_image(app.thumbnail&.url, character.id, character.rating)
+    ImageController.default_image(app.image&.url, character.id, character.rating)
 
     # Determine appropriate channel
     channel = case character.rating

+ 6 - 10
app/controllers/image_controller.rb

@@ -1,21 +1,17 @@
 class ImageController
   def self.default_image(url, char_id, rating)
-    img = CharImage.where(char_id: char_id).find_by(keyword: 'Default')
+    image = CharImage.where(char_id: char_id).find_by(keyword: 'Default')
 
-    case
-    when url && img
-      img.update(url: url)
-      img.reload
-    when url && !img
-      img = CharImage.create(
+    if image
+      image.update(url: url)
+    else
+      CharImage.create(
         char_id: char_id,
         url: url,
         category: rating,
-        keyword: 'Default'
+        keword: 'Default'
       )
     end
-
-    img
   end
 
   def self.edit_image(params)

+ 9 - 3
app/embeds/character.rb

@@ -27,11 +27,11 @@ def character_embed(character:, event:, section: nil, image: nil)
     fields = char_status(character, fields)
     fields = char_bio(character, fields)
     fields = char_rumors(character, fields)
-    fields = char_dm_notes(character, fields) if ENV['DM_CH'].include?(event.channel.id.to_s)
+    fields = char_dm_notes(character, fields, event)
   when /bio/i
     embed.description = character.personality if character.personality
     fields = char_bio(character, fields)
-    fields = char_dm_notes(character, fields) if ENV['DM_CH'].include?(event.channel.id.to_s)
+    fields = char_dm_notes(character, fields, event)
   when /types?/i
     fields = char_type(character, fields)
   when /status/i
@@ -183,12 +183,18 @@ def char_inv(char, fields)
   # Show formatted items
   value = bags.empty? ? "#{char.name} doesn't have any items" : bags.join("\n")
   fields.push({ name: "Bags", value: value })
+
+  fields
 end
 
-def char_dm_notes(char, fields)
+def char_dm_notes(char, fields, event)
+  return fields unless ENV['DM_CH'].include?(event.channel.id.to_s)
+
   fields.push(
     { name: 'DM Notes', value: char.dm_notes }
   )if char.dm_notes
+
+  fields
 end
 
 def char_list_embed(chars, group, sort = nil)