62 lines
1.3 KiB
Ruby
62 lines
1.3 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'active_record'
|
||
|
require 'faraday'
|
||
|
require 'json'
|
||
|
require 'logger'
|
||
|
require 'matrix_sdk'
|
||
|
require 'yaml'
|
||
|
|
||
|
require_relative './matrix'
|
||
|
|
||
|
# Require any addons
|
||
|
Dir[File.join(__dir__, 'addons', '*.rb')].each do |file|
|
||
|
require file
|
||
|
end
|
||
|
|
||
|
# Chronicle Bot
|
||
|
module Chronicle
|
||
|
# A filter to simplify syncs
|
||
|
BOT_FILTER = {
|
||
|
presence: { types: [] },
|
||
|
account_data: { types: [] },
|
||
|
room: {
|
||
|
ephemeral: { types: [] },
|
||
|
state: {
|
||
|
types: ['m.room.*'],
|
||
|
lazy_load_members: true
|
||
|
},
|
||
|
timeline: {
|
||
|
types: ['m.room.message']
|
||
|
},
|
||
|
account_data: { types: [] }
|
||
|
}
|
||
|
}.freeze
|
||
|
|
||
|
# Establish configuration for Chronicle
|
||
|
module Config
|
||
|
class << self
|
||
|
# Matrix connection configuration attributes
|
||
|
attr_accessor :matrix_homeserver, :matrix_access_token
|
||
|
|
||
|
# Logging configuration attributes
|
||
|
attr_accessor :log_file, :log_verbose
|
||
|
end
|
||
|
|
||
|
# Load a configuration Hash, and store in "module variables"
|
||
|
#
|
||
|
# @param config [Hash] a configuration hash
|
||
|
def self.load_config(config)
|
||
|
@matrix_homeserver = config["matrix"]["homeserver"]
|
||
|
@matrix_access_token = config["matrix"]["token"]
|
||
|
|
||
|
@log_file = config["log"]["file"]
|
||
|
@log_verbose = config["log"]["debug"]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.start()
|
||
|
Chronicle::Matrix.start
|
||
|
end
|
||
|
end
|