class QuickML::GroupSite
Attributes
key[R]
site[R]
total_file_size_exceeded[R]
total_file_size_reaching[R]
Public Class Methods
new(ml_config, sitename, test=false)
click to toggle source
# File vendor/qwik/lib/qwik/group-site.rb, line 66 def initialize(ml_config, sitename, test=false) @ml_config = ml_config if test || defined?($test) && $test @config = $test_config @memory = $test_memory else =begin hash = {:debug=>true} # FIXME: Web Config should be inherited from the web server. f = @ml_config[:config_file].path if f.exist? config = Qwik::Config.load_config_file(f.to_s) hash.update(config) end @config = Qwik::Config.new @config.update(hash) =end @config = @ml_config @memory = Qwik::ServerMemory.new(@config) end @sitename = sitename @site = @memory.farm.get_site(@sitename) raise 'site does not exist' if @site.nil? # Check if the site is exist. @key = nil @total_file_size_exceeded = false @total_file_size_reaching = false end
Private Class Methods
attach(site, key, filename, file_content)
click to toggle source
# File vendor/qwik/lib/qwik/group-site.rb, line 173 def self.attach(site, key, filename, file_content) files = site.files(key) result_filename = files.fput(filename, file_content) result_filename = result_filename.to_page_charset addmessage = "\n{{file(#{filename})}}\n\n" if result_filename != filename addmessage = "\n{{file(#{result_filename})}}\n\n" end return addmessage end
file_with_num(filename, num)
click to toggle source
# File vendor/qwik/lib/qwik/group-site.rb, line 187 def self.file_with_num(filename, num) return "#{num}-#{filename}" end
Public Instance Methods
post(mail)
click to toggle source
# File vendor/qwik/lib/qwik/group-site.rb, line 103 def post(mail) # Parse page title. title = mail.get_unified_subject(@sitename) # Get unified subject. page_title, tags = Qwik::Page.parse_title(title) page = @site.get_by_title(page_title) if page.nil? # Create a new page. if Qwik::Page.valid_as_pagekey?(page_title) page = @site.create(page_title) # CREATE else page = @site.create_new # CREATE end page.store('* '+title+"\n") # Save title with tags. end @key = page.key # @key will be used at site_url # Get body text. now = $quickml_debug ? Time.at(0) : Time.now content = make_content(@key, mail, now) page.add(content) end
Private Instance Methods
make_content(key, mail, now)
click to toggle source
# File vendor/qwik/lib/qwik/group-site.rb, line 132 def make_content(key, mail, now) content = '' mail_default_charset = 'ISO-2022-JP' site_files_total = @site.files_total max_total_file_size = @config[:max_total_file_size].to_i max_total_warn_size = @config[:max_total_warn_size].to_i mail.each_part {|sub_mail| if sub_mail.plain_text_body? c = sub_mail.decoded_body.normalize_eol charset = c.guess_charset || mail_default_charset c = c.set_charset(charset).to_page_charset content << c else filename = sub_mail.filename decoded_body = sub_mail.decoded_body if filename && decoded_body if max_total_file_size < site_files_total #do not attach file content << _("\nFile '%s' was not attached.\n",filename) else msg = GroupSite.attach(@site, key, filename, decoded_body) content << msg site_files_total += decoded_body.size end if max_total_file_size < site_files_total @total_file_size_exceeded = true elsif (max_total_file_size - max_total_warn_size) < site_files_total @total_file_size_reaching = true end end end } content.gsub!(/\n\n\z/, "\n") # FIXME: Why truncate newlines? from = mail.mail_from time = now.to_i return "{{mail(#{from},#{time}) #{content}}} " end