# File languages-statistics.rb, line 51
        def execute
                
                @status = 0
                time_started = Time.now.utc
                working_directory_format = DateTimeFormat.new('${year}${month}${day}T${hour}${minute}${second}')
                working_directory = working_directory_format.format(time_started)
                Dir.mkdir(working_directory)
                logger = Logger.new([$stderr, File.new(working_directory + '/log.txt', 'w')])
                date_time_format = DateTimeFormat.new()
                logger.log('統計情報の取得と更新用ウィキテキストの作成')
                logger.log('開始しました。 ' + date_time_format.format(time_started) )
                config = WikiBotConfig.new(working_directory)
                logger.log('作業ディレクトリ: ' + config.working_directory)
                current_page_file_name = config.working_directory + '/current-page.txt'
                resource = Resource.new(logger)
                statisticsFetcher = StatisticsFetcher.new(config, resource, logger)
                statisticsFetcher.execute()
                @status = statisticsFetcher.status
                
                bot = WikiBot.new(config)
                begin
                        bot.login
                rescue MediaWikiApiError => error
                        logger.log(error.to_s)
                        @status = 1
                        return
                end
                current_revision_text = bot.current_revision_text(config.target_statistics_page)
                bot.logout
                current_page_file = File.new(current_page_file_name, 'w')
                current_page_file.print(current_revision_text)
                current_page_file.close()
                logger.log('統計ページの現在のリビジョンのウィキテキストを取得して、' + current_page_file_name + ' に出力しました。')
                LanguageEntry.minimum_number_of_articles_for_calculating_depth =
                        resource.minimum_number_of_articles_for_calculating_depth
                new_statistics_page =
                        NewStatisticsPage.new(statisticsFetcher, current_revision_text, resource, logger)
                new_statistics_page.number_of_languages_in_site_matrix =
                        statisticsFetcher.number_of_languages_in_site_matrix()
                new_statistics_page.print
                FileUtils.copy(Dir.glob(config.working_directory + '/*'), '.')
                FileUtils.copy(Resource::FILE_NAME, config.working_directory)
                process_launcher = ProcessLauncher.new(logger)
                if (config.file_browser != nil) then
                        process_launcher.launch(config.file_browser, config.working_directory, 'ファイルブラウザの起動に失敗しました: ')
                end
                if (config.text_viewer != nil) then
                        process_launcher.launch(config.text_viewer, new_statistics_page.file_name, 'テキストビューワの起動に失敗しました: ')
                end
                time_ended = Time.now.utc
                date_time_format.set_date_time(time_ended)
                logger.log('終了しました。 ' + date_time_format.format )
                logger.log('要した時間: ' + (time_ended - time_started).to_s + ' 秒' )
        end