コード例 #1
0
ファイル: amber-settings.php プロジェクト: su/amber_wordpress
 /**
  * Register and add settings
  */
 public function page_init()
 {
     add_settings_section('amber_cache_section', 'Storage Settings', array($this, 'print_cache_section_info'), 'amber-settings-admin');
     add_settings_field('amber_max_file', 'Maximum file size (kB)', array($this, 'amber_max_file_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_max_disk', 'Maximum disk usage (MB)', array($this, 'amber_max_disk_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_storage_location', 'Storage location', array($this, 'amber_storage_location_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_update_strategy', 'Update strategy for captures', array($this, 'amber_update_strategy_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_excluded_sites', 'Excluded URL Patterns', array($this, 'amber_excluded_sites_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_excluded_formats', 'Excluded file formats', array($this, 'amber_excluded_formats_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_section('amber_delivery_section', 'Amber Delivery', array($this, 'print_delivery_section_info'), 'amber-settings-admin');
     add_settings_field('amber_available_action', 'Available links', array($this, 'amber_available_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_available_action_hover', 'Hover delay (seconds)', array($this, 'amber_available_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_unavailable_action', 'Unavailable links', array($this, 'amber_unavailable_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_unavailable_action_hover', 'Hover delay (seconds)', array($this, 'amber_unavailable_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_id', 'Country', array($this, 'amber_country_id_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_available_action', 'Available links', array($this, 'amber_country_available_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_available_action_hover', 'Hover delay (seconds)', array($this, 'amber_country_available_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_unavailable_action', 'Unavailable links', array($this, 'amber_country_unavailable_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_unavailable_action_hover', 'Hover delay (seconds)', array($this, 'amber_country_unavailable_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     register_setting('amber_option_group', 'amber_options', array($this, 'sanitize'));
     Amber::disk_space_purge();
 }
コード例 #2
0
ファイル: amber.php プロジェクト: su/amber_wordpress
 private static function cache_link($item, $force = false)
 {
     $checker = Amber::get_checker();
     $status = Amber::get_status();
     $fetcher = Amber::get_fetcher();
     /* Check whether the site is up */
     $last_check = $status->get_check($item);
     if (($update = $checker->check(empty($last_check) ? array('url' => $item) : $last_check, $force)) !== false) {
         /* There's an updated check result to save */
         $status->save_check($update);
         /* Now cache the item if we should */
         $existing_cache = $status->get_cache($item);
         $strategy = Amber::get_option('amber_update_strategy', 0);
         if ($update['status'] && (!$strategy || !$existing_cache)) {
             $cache_metadata = array();
             try {
                 $cache_metadata = $fetcher->fetch($item);
             } catch (RuntimeException $re) {
                 $update['message'] = $re->getMessage();
                 $status->save_check($update);
                 return false;
             }
             if ($cache_metadata) {
                 $status->save_cache($cache_metadata);
                 Amber::disk_space_purge();
                 return true;
             }
         }
     } else {
         return false;
     }
 }
コード例 #3
0
 /**
  * Register and add settings
  */
 public function page_init()
 {
     add_settings_section('amber_cache_section', 'Storage Settings', array($this, 'print_cache_section_info'), 'amber-settings-admin');
     add_settings_field('amber_backend', 'Backend to use for storing snapshots', array($this, 'amber_backend_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_alternate_backends', 'Alternate backend(s) to use for storing snapshots', array($this, 'amber_alternate_backends_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_max_file', 'Maximum file size (kB)', array($this, 'amber_max_file_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_max_disk', 'Maximum disk usage (MB)', array($this, 'amber_max_disk_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_storage_location', 'Storage location', array($this, 'amber_storage_location_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_perma_api_key', 'Perma API key', array($this, 'amber_perma_api_key_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_perma_server_url', 'Perma URL', array($this, 'amber_perma_server_url_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_perma_api_server_url', 'Perma API URL', array($this, 'amber_perma_api_server_url_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_aws_access_key', 'AWS Access Key', array($this, 'amber_aws_access_key_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_aws_secret_key', 'AWS Secret Access Key', array($this, 'amber_aws_secret_key_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_aws_bucket', 'S3 Bucket', array($this, 'amber_aws_bucket_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_aws_region', 'S3 Region', array($this, 'amber_aws_region_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_post_types', 'Included post types', array($this, 'amber_post_types_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_update_strategy', 'Update strategy for snapshots', array($this, 'amber_update_strategy_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_excluded_sites', 'Excluded URL Patterns', array($this, 'amber_excluded_sites_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_field('amber_excluded_formats', 'Excluded file formats', array($this, 'amber_excluded_formats_callback'), 'amber-settings-admin', 'amber_cache_section');
     add_settings_section('amber_delivery_section', 'Amber Delivery', array($this, 'print_delivery_section_info'), 'amber-settings-admin');
     add_settings_field('amber_available_action', 'Available links', array($this, 'amber_available_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_available_action_hover', 'Hover delay (seconds)', array($this, 'amber_available_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_unavailable_action', 'Unavailable links', array($this, 'amber_unavailable_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_unavailable_action_hover', 'Hover delay (seconds)', array($this, 'amber_unavailable_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_id', 'Country', array($this, 'amber_country_id_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_available_action', 'Available links', array($this, 'amber_country_available_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_available_action_hover', 'Hover delay (seconds)', array($this, 'amber_country_available_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_unavailable_action', 'Unavailable links', array($this, 'amber_country_unavailable_action_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_field('amber_country_unavailable_action_hover', 'Hover delay (seconds)', array($this, 'amber_country_unavailable_action_hover_callback'), 'amber-settings-admin', 'amber_delivery_section');
     add_settings_section('amber_services_section', 'Optional Functionality', array($this, 'print_services_section_info'), 'amber-settings-admin');
     if (isset($this->options['amber_enable_netclerk']) && $this->options['amber_enable_netclerk']) {
         add_settings_field('amber_external_availability', 'Use a third-party database to check site availability', array($this, 'amber_external_availability_callback'), 'amber-settings-admin', 'amber_services_section');
         add_settings_field('amber_report_availability', 'Inform a third-party database of site availability', array($this, 'amber_report_availability_callback'), 'amber-settings-admin', 'amber_services_section');
     }
     add_settings_field('amber_timegate', 'Check a TimeGate server for additional snapshots', array($this, 'amber_timegate_callback'), 'amber-settings-admin', 'amber_services_section');
     register_setting('amber_option_group', 'amber_options', array($this, 'sanitize'));
     Amber::disk_space_purge();
 }
コード例 #4
0
ファイル: amber.php プロジェクト: genevec/amber_wordpress
 private static function cache_link($item, $force = false)
 {
     $checker = Amber::get_checker();
     $status = Amber::get_status();
     $fetcher = Amber::get_fetcher();
     $availability = Amber::get_availability();
     /* Check whether the site is up */
     $last_check = $status->get_check($item);
     if (($update = $checker->check(empty($last_check) ? array('url' => $item) : $last_check, $force)) !== false) {
         /* There's an updated check result to save */
         $status->save_check($update);
         if ($availability && isset($update['details']) && Amber::get_option('amber_report_availability', AMBER_REPORT_AVAILABILITY_NONE) == AMBER_REPORT_AVAILABILITY_NETCLERK) {
             $availability->report_status($item, $update['details']);
         }
         /* Now cache the item if we should */
         $strategy = Amber::get_option('amber_update_strategy', 0);
         if ($update['status'] && (!$strategy || !$status->has_cache($item))) {
             /* Save the item to the primary storage location */
             $result = Amber::fetch_item($item, $fetcher, $status);
             /* Save the item to any alternate storage locations */
             foreach (Amber::get_alternate_fetchers() as $alternate_fetcher) {
                 Amber::fetch_item($item, $alternate_fetcher, $status);
             }
             if ($result) {
                 Amber::disk_space_purge();
                 return true;
             }
         }
     } else {
         return false;
     }
 }