chronicle_bot/lib/chronicle.rb

62 lines
1.3 KiB
Ruby
Raw Normal View History

# 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