API Docs
Posted in API Docs
247
11:43 pm, March 26, 2022

Funeral Notices

2 Part import one for the listings and one for the details. 

Functions extracted from imports.extend

Crons

#notices list import below
*/28 * * * * wget --spider https://api.kruxor.com/imports/3zJFx/ > /dev/null 2>&1
#notices details import below
*/14 * * * * wget --spider https://api.kruxor.com/imports/4aZls/ > /dev/null 2>&1

Notice Listing

https://api.kruxor.com/list/notices/ 

Part 1 List Import

Grabs the details from the listing page. 

  /*

  Import list of items from : https://www.mytributes.com.au/all-locations/?sort=date
  Running import type: import_notices_list into class extend notices

  */
  public function import_notices_list() {
      /* This will be run on a loaded import item, so dont need to pass variabled to the function */
      global $db;
      global $functions;
      $out = "";
      $for_counter = 0;
      $main_loop_tag = ".notice-board-list .notice-message";
      $db_table_name = $this->db->escapeString($this->db_table_name);
      $loop_max = 100;

      // import url is a bit different, need to replace the search part of the string with search_term
      // https://api.kruxor.com/imports/GMJQx/?search_term=new+world
      // test html -- https://api.kruxor.com/steam_test.html

      // $search_term = $_GET['search_term'];
      // $search_term_enc = urlencode($search_term);

      $import_url = $this->import_url;
      // $import_url_search = str_replace ( "[@search_term]" , $search_term_enc , $import_url_search); // replace... [@search_term]

      //$bugs .= $import_url_search;
      //$import_url_search;

      // $functions->cache_results($id = md5($game_url), $url = $game_url, $cache_length_hours = 24, $use_simple_html = false);
      // $html_cache = "cache/". md5($game_url) . "_cache.html"; // rather than loading the url over and over from the server.

      // save the html file for testing to see if the grabbed file is the same as the one in browser.
      // file_put_contents ( "./steam_test.html" , file_get_contents($import_url_search) );

      require_once("lib/simple_html_dom.php");
      $html = file_get_html($import_url);

        foreach($html->find($main_loop_tag) as $item) {

            $for_counter++;
            if($for_counter == $loop_max) {
              continue;
            }

            $target_thread_class = new $this->target_thread_class;
            $target_thread_class->add_to_menu = false;
            $target_thread_class->start();


            /* title */
            $imp_title = $item->find('.listing-header',0)->plaintext;
            $imp_title = trim($imp_title);
            // $target_thread_class->title = $imp_title;

            /* md5 */
            $imp_title_md5 = md5($imp_title);

            /* publication */
            $imp_pub = $item->find('.metadata span',0)->plaintext; // .metadata span
            $imp_pub = trim($imp_pub);

            /* date_listed */
            $imp_date_listed = $item->find('.metadata span',1)->plaintext; // .metadata span
            $imp_date_listed = trim($imp_date_listed);


            /* link_url */
            $imp_link_url = $item->find('a',0)->href;
            $imp_link_url = "https://www.mytributes.com.au" . $imp_link_url;

            /* Names Split */
            $imp_names = explode(",",$imp_title);
            $imp_surname = $imp_names[0];
            $imp_surname = trim($imp_surname);
            $imp_other_names = $imp_names[1];
            $imp_other_names = trim($imp_other_names);


            /* attr example */
            // $imp_search_review_summary = $item->find('.search_review_summary',0)->attr['data-tooltip-html']; // attr data-tooltip-html

            /* check isset attr */
            /*
            if(isset($item->attr['data-ds-appid'])) {
              $imp_game_id = $item->attr['data-ds-appid'];
              if($imp_game_id > "") {
                $imp_game_discussions = "https://steamcommunity.com/app/".$imp_game_id."/discussions/0/";
              }
            }
            */

            // use this md5_exists
            if($target_thread_class->md5_exists($imp_title_md5)) {
              // continue on to processing replies for this thread.
            } else {
              // add as a new main thread.
              $target_thread_class->title = $imp_title;
              $target_thread_class->md5 = $imp_title_md5;
              $target_thread_class->date_listed = $imp_date_listed;
              $target_thread_class->processed = "false";
              $target_thread_class->surname = $imp_surname;
              $target_thread_class->other_name = $imp_other_names;
              $target_thread_class->publication = $imp_pub;
              $target_thread_class->link_url = $imp_link_url;
              // $target_thread_class->location = $imp_location;
              /* working here... \*/

              $target_thread_class->add();
              $target_thread_class->load_from_id($target_thread_class->id);
            }

            // just process one to test...
            //return;

        }

        return $out;

  }

 

Part 2 Details Import

This loads and imports the latest unprocessed item, if it does not find one it just returns. 

  public function import_notices_details() {
      global $db;
      global $functions;
      $out = "";
      $for_counter = 0;
      $main_loop_tag = ".listing";
      $db_table_name = $this->db->escapeString($this->db_table_name);
      $loop_max = 100;

      $notices = new notices;
      $notices->add_to_menu = false;
      $notices->start();

      $fields_array = [
        "processed" => "false",
      ];
      if(!$notices->load_from_fields_array($fields_array, $max = 1)) {
        return "nothing to load";
      }

      // we should have a loded unprocessed item now.
      $out .= $notices->title . "<br />";

      $import_url = $notices->link_url;

      require_once("lib/simple_html_dom.php");
      $html = file_get_html($import_url);

      //$item = $html->find($main_loop_tag);
        //foreach($html->find($main_loop_tag) as $item) {

            /*
            $for_counter++;
            if($for_counter == $loop_max) {
              continue;
            }
            */

            // echo "in item loop";

            //$target_thread_class = new $this->target_thread_class;
            //$target_thread_class->add_to_menu = false;
            //$target_thread_class->start();


            /* description full html */
            $imp_additional = "";
            $imp_additional = $html->find('.listing .listing-description',0)->innertext;
            $imp_additional = trim($imp_additional);
            // $target_thread_class->title = $imp_title;

            $imp_text_details = strip_tags($imp_additional);

            /* Date Range */
            $img_date_range = "";
            $imp_date_range = $html->find('.listing .listing-description p span',0)->innertext;
            $imp_date_range = trim($imp_date_range);

            /* Location */
            // short-address
            $imp_location = "";
            $imp_location = $html->find('.listing .short-address',0)->plaintext;
            $imp_location = trim($imp_location);

            // image
            $imp_img = "";
            //if(isset($item->find('img',0))) {
            if(null !== $html->find('.galleria-stage img',0)) {
              $imp_img = $html->find('.galleria-stage img',0)->src;
            }

            /* attr example */
            // $imp_search_review_summary = $item->find('.search_review_summary',0)->attr['data-tooltip-html']; // attr data-tooltip-html

            /* check isset attr */
            /*
            if(isset($item->attr['data-ds-appid'])) {
              $imp_game_id = $item->attr['data-ds-appid'];
              if($imp_game_id > "") {
                $imp_game_discussions = "https://steamcommunity.com/app/".$imp_game_id."/discussions/0/";
              }
            }
            */

            $notices->processed = "true";
            $notices->text_details = $imp_text_details;
            $notices->date_range = $imp_date_range;
            $notices->image_source = $imp_img;
            $notices->location = $imp_location;
            $notices->additional = $imp_additional;
            $notices->update();

        //}

        return $out;

  }

 

No Items Found.

Add Comment
Type in a Nick Name here