v0.36 Tweaks for new Prod host, code added for Trust Level setting
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
				
			|||||||
# gossamer threads migration-import code
 | 
					# Federated Computer, Inc.
 | 
				
			||||||
# v0.35.1
 | 
					# David Sainty <saint@federated.computer>  2024 A.D.
 | 
				
			||||||
 | 
					# Gossamer Threads to Discourse -- Migration-Import Script
 | 
				
			||||||
 | 
					# v0.36
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require 'mysql2'
 | 
					require 'mysql2'
 | 
				
			||||||
require 'open-uri'
 | 
					require 'open-uri'
 | 
				
			||||||
@@ -13,7 +15,8 @@ require 'csv'
 | 
				
			|||||||
require 'time'
 | 
					require 'time'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require File.expand_path("../../../../config/environment", __FILE__)
 | 
					require File.expand_path("../../../../config/environment", __FILE__)
 | 
				
			||||||
require_relative '../base'
 | 
					# require_relative '../base'
 | 
				
			||||||
 | 
					require File.expand_path("../../../../script/import_scripts/base", __FILE__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class GossamerForumsImporter < ImportScripts::Base
 | 
					class GossamerForumsImporter < ImportScripts::Base
 | 
				
			||||||
  def initialize
 | 
					  def initialize
 | 
				
			||||||
@@ -1177,6 +1180,26 @@ class GossamerForumsImporter < ImportScripts::Base
 | 
				
			|||||||
      puts "update_user_stats  user_id  #{user_id}  post_count  #{count}"
 | 
					      puts "update_user_stats  user_id  #{user_id}  post_count  #{count}"
 | 
				
			||||||
      user_stat = UserStat.find_or_initialize_by(user_id: user_id)
 | 
					      user_stat = UserStat.find_or_initialize_by(user_id: user_id)
 | 
				
			||||||
      user_stat.update_columns(post_count: count)
 | 
					      user_stat.update_columns(post_count: count)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Determine the new Trust Level based on post_count
 | 
				
			||||||
 | 
					      user = User.find(user_id)
 | 
				
			||||||
 | 
					      new_trust_level = case count
 | 
				
			||||||
 | 
					                  when 0..2 then 1   # basic user
 | 
				
			||||||
 | 
					                  when 3..50 then 2  # member
 | 
				
			||||||
 | 
					                  else 3             # regular or above when 51..100
 | 
				
			||||||
 | 
					                  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Fetch the current user and check if Trust Level needs updating
 | 
				
			||||||
 | 
					      user = User.find(user_id)
 | 
				
			||||||
 | 
					      current_trust_level = user.trust_level || 1 # default to 1 if not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Only update trust level if the new level is higher than the current one
 | 
				
			||||||
 | 
					      if new_trust_level > current_trust_level
 | 
				
			||||||
 | 
					        user.update!(trust_level: new_trust_level)
 | 
				
			||||||
 | 
					        puts "update_user_stats  user_id  #{user_id}  trust_level updated to #{new_trust_level}"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        puts "update_user_stats  user_id  #{user_id}  trust_level remains at #{current_trust_level}"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1302,6 +1325,26 @@ class GossamerForumsImporter < ImportScripts::Base
 | 
				
			|||||||
    # Secret trick to disable RateLimiting protection in Discourse
 | 
					    # Secret trick to disable RateLimiting protection in Discourse
 | 
				
			||||||
    RateLimiter.disable
 | 
					    RateLimiter.disable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#    ActiveRecord::Base.connection.disconnect! rescue nil
 | 
				
			||||||
 | 
					#    ActiveRecord::Base.clear_active_connections! rescue nil
 | 
				
			||||||
 | 
					#    ActiveRecord::Base.establish_connection(
 | 
				
			||||||
 | 
					#      adapter: 'postgresql',
 | 
				
			||||||
 | 
					#      host: '10.0.0.2',      # Use the external DB host
 | 
				
			||||||
 | 
					#      port: 5432,                # Default PostgreSQL port
 | 
				
			||||||
 | 
					#      database: 'discourse',
 | 
				
			||||||
 | 
					#      username: 'discourse',
 | 
				
			||||||
 | 
					#      password: 'nhB5FWhQkjdvaD2ViRNO63dQagDnzaTn',
 | 
				
			||||||
 | 
					#      connect_timeout: 10
 | 
				
			||||||
 | 
					#    )
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					    ENV['PGHOST'] = '10.0.0.2'
 | 
				
			||||||
 | 
					    ENV['PGPORT'] = '5432'
 | 
				
			||||||
 | 
					    ENV['PGDATABASE'] = 'discourse'
 | 
				
			||||||
 | 
					    ENV['PGUSER'] = 'discourse'
 | 
				
			||||||
 | 
					    ENV['PGPASSWORD'] = 'nhB5FWhQkjdvaD2ViRNO63dQagDnzaTn'
 | 
				
			||||||
 | 
					#    ActiveRecord::Base.establish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Set our unique timestamp for this migration run
 | 
					    # Set our unique timestamp for this migration run
 | 
				
			||||||
    timestamp = Time.now.strftime("-%Y%m%d%H%M%S")
 | 
					    timestamp = Time.now.strftime("-%Y%m%d%H%M%S")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user