<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.completenoobs.com/noobs/index.php?action=history&amp;feed=atom&amp;title=Fetch_Posts_From_HIVE_Blockchain</id>
	<title>Fetch Posts From HIVE Blockchain - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.completenoobs.com/noobs/index.php?action=history&amp;feed=atom&amp;title=Fetch_Posts_From_HIVE_Blockchain"/>
	<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Fetch_Posts_From_HIVE_Blockchain&amp;action=history"/>
	<updated>2026-04-30T02:24:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Fetch_Posts_From_HIVE_Blockchain&amp;diff=571&amp;oldid=prev</id>
		<title>AwesomO at 05:20, 16 June 2025</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Fetch_Posts_From_HIVE_Blockchain&amp;diff=571&amp;oldid=prev"/>
		<updated>2025-06-16T05:20:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:20, 16 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fetching a syntax_wiki post from HIVE&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fetching a syntax_wiki post from HIVE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* https://peakd.com/hive-138301/@completenoobs/how-to-download-pages-from-hive-blockchain&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Container Setup==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Container Setup==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>AwesomO</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Fetch_Posts_From_HIVE_Blockchain&amp;diff=570&amp;oldid=prev</id>
		<title>AwesomO: Created page with &quot;* Fetching a syntax_wiki post from HIVE  ==Container Setup==  * create container &lt;code&gt;lxc launch ubuntu:24.04 hive&lt;/code&gt; * Login to container &lt;code&gt;lxc exec hive bash&lt;/code&gt; * switch to user ubuntu &lt;code&gt;su - ubuntu&lt;/code&gt;  ===Update System and Install Dependencies=== * Update package lists &lt;code&gt;sudo apt update &amp;&amp; sudo apt upgrade -y&lt;/code&gt;  * Install essential packages &lt;code&gt;sudo apt install -y python3 python3-pip python3-venv git build-essential&lt;/code&gt;  * Install de...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Fetch_Posts_From_HIVE_Blockchain&amp;diff=570&amp;oldid=prev"/>
		<updated>2025-06-16T05:13:13Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;* Fetching a syntax_wiki post from HIVE  ==Container Setup==  * create container &amp;lt;code&amp;gt;lxc launch ubuntu:24.04 hive&amp;lt;/code&amp;gt; * Login to container &amp;lt;code&amp;gt;lxc exec hive bash&amp;lt;/code&amp;gt; * switch to user ubuntu &amp;lt;code&amp;gt;su - ubuntu&amp;lt;/code&amp;gt;  ===Update System and Install Dependencies=== * Update package lists &amp;lt;code&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/code&amp;gt;  * Install essential packages &amp;lt;code&amp;gt;sudo apt install -y python3 python3-pip python3-venv git build-essential&amp;lt;/code&amp;gt;  * Install de...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* Fetching a syntax_wiki post from HIVE&lt;br /&gt;
&lt;br /&gt;
==Container Setup==&lt;br /&gt;
&lt;br /&gt;
* create container&lt;br /&gt;
&amp;lt;code&amp;gt;lxc launch ubuntu:24.04 hive&amp;lt;/code&amp;gt;&lt;br /&gt;
* Login to container&lt;br /&gt;
&amp;lt;code&amp;gt;lxc exec hive bash&amp;lt;/code&amp;gt;&lt;br /&gt;
* switch to user ubuntu&lt;br /&gt;
&amp;lt;code&amp;gt;su - ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update System and Install Dependencies===&lt;br /&gt;
* Update package lists&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install essential packages&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install -y python3 python3-pip python3-venv git build-essential&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install development libraries needed for compilation&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install -y libssl-dev libffi-dev python3-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verify Python installation&lt;br /&gt;
&amp;lt;code&amp;gt;python3 --version&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pip3 --version&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create Virtual Environment (Recommended) ===&lt;br /&gt;
* Create a virtual environment&lt;br /&gt;
&amp;lt;code&amp;gt;python3 -m venv hive_beem_env&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Activate the virtual environment&lt;br /&gt;
&amp;lt;code&amp;gt;source hive_beem_env/bin/activate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verify you&amp;#039;re in the virtual environment (should show the path)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(hive_beem_env) ubuntu@hive:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install Beem===&lt;br /&gt;
* Install beem from PyPI&lt;br /&gt;
* NOTE: Beem is installed in Virtual Environment to avoid &amp;lt;code&amp;gt;error: externally-managed-environment&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pip install beem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script to Fetch Post from HIVE ==&lt;br /&gt;
&amp;lt;code&amp;gt;$EDITOR hive-fetch.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;WARNING THIS SCRIPT IS EARLY CONCEPT DRAFT BUGGY!&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Hive Post Fetcher using Beem&lt;br /&gt;
Fetches raw markdown content from Hive blockchain posts&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import argparse&lt;br /&gt;
import json&lt;br /&gt;
import time&lt;br /&gt;
import xml.etree.ElementTree as ET&lt;br /&gt;
import xml.dom.minidom as minidom&lt;br /&gt;
import re&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
from beem import Hive&lt;br /&gt;
from beem.comment import Comment&lt;br /&gt;
from beem.account import Account&lt;br /&gt;
&lt;br /&gt;
class HivePostFetcher:&lt;br /&gt;
    def __init__(self, nodes=None):&lt;br /&gt;
        if nodes is None:&lt;br /&gt;
            nodes = [&lt;br /&gt;
                &amp;quot;https://api.hive.blog&amp;quot;,&lt;br /&gt;
                &amp;quot;https://rpc.ecency.com&amp;quot;,&lt;br /&gt;
                &amp;quot;https://api.deathwing.me&amp;quot;,&lt;br /&gt;
                &amp;quot;https://fin.hive.3speak.co&amp;quot;&lt;br /&gt;
            ]&lt;br /&gt;
        self.hive = Hive(node=nodes)&lt;br /&gt;
    &lt;br /&gt;
    def parse_hive_url(self, url):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Parse Hive blog URL to extract author and permlink&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        try:&lt;br /&gt;
            # Remove trailing slash if present&lt;br /&gt;
            url = url.rstrip(&amp;#039;/&amp;#039;)&lt;br /&gt;
            &lt;br /&gt;
            # Handle different URL formats:&lt;br /&gt;
            # https://hive.blog/completenoobs/@completenoobs/completenoobs-genesis&lt;br /&gt;
            # https://hive.blog/@completenoobs/completenoobs-genesis&lt;br /&gt;
            # https://peakd.com/@completenoobs/completenoobs-genesis&lt;br /&gt;
            &lt;br /&gt;
            # Extract the path part&lt;br /&gt;
            parsed = urlparse(url)&lt;br /&gt;
            path = parsed.path&lt;br /&gt;
            &lt;br /&gt;
            # Split and filter empty parts&lt;br /&gt;
            parts = [p for p in path.split(&amp;#039;/&amp;#039;) if p]&lt;br /&gt;
            &lt;br /&gt;
            if len(parts) &amp;gt;= 2:&lt;br /&gt;
                # Find the author (starts with @)&lt;br /&gt;
                author_part = None&lt;br /&gt;
                permlink_part = None&lt;br /&gt;
                &lt;br /&gt;
                for i, part in enumerate(parts):&lt;br /&gt;
                    if part.startswith(&amp;#039;@&amp;#039;):&lt;br /&gt;
                        author_part = part[1:]  # Remove @&lt;br /&gt;
                        if i + 1 &amp;lt; len(parts):&lt;br /&gt;
                            permlink_part = parts[i + 1]&lt;br /&gt;
                        break&lt;br /&gt;
                &lt;br /&gt;
                if author_part and permlink_part:&lt;br /&gt;
                    return f&amp;quot;@{author_part}/{permlink_part}&amp;quot;&lt;br /&gt;
            &lt;br /&gt;
            return None&lt;br /&gt;
            &lt;br /&gt;
        except Exception as e:&lt;br /&gt;
            print(f&amp;quot;Error parsing URL: {e}&amp;quot;)&lt;br /&gt;
            return None&lt;br /&gt;
        &lt;br /&gt;
    def fetch_single_post(self, authorperm_or_url):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Fetch a single post by author/permlink or URL&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        try:&lt;br /&gt;
            # Check if input is a URL&lt;br /&gt;
            if authorperm_or_url.startswith(&amp;#039;http&amp;#039;):&lt;br /&gt;
                authorperm = self.parse_hive_url(authorperm_or_url)&lt;br /&gt;
                if not authorperm:&lt;br /&gt;
                    return {&amp;#039;success&amp;#039;: False, &amp;#039;error&amp;#039;: &amp;#039;Could not parse URL format&amp;#039;}&lt;br /&gt;
                print(f&amp;quot;Parsed URL to: {authorperm}&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                authorperm = authorperm_or_url&lt;br /&gt;
            &lt;br /&gt;
            post = Comment(authorperm, blockchain_instance=self.hive)&lt;br /&gt;
            return {&lt;br /&gt;
                &amp;#039;success&amp;#039;: True,&lt;br /&gt;
                &amp;#039;data&amp;#039;: {&lt;br /&gt;
                    &amp;#039;title&amp;#039;: post.get(&amp;#039;title&amp;#039;, &amp;#039;No Title&amp;#039;),&lt;br /&gt;
                    &amp;#039;author&amp;#039;: post[&amp;#039;author&amp;#039;],&lt;br /&gt;
                    &amp;#039;permlink&amp;#039;: post[&amp;#039;permlink&amp;#039;],&lt;br /&gt;
                    &amp;#039;authorperm&amp;#039;: post[&amp;#039;authorperm&amp;#039;],&lt;br /&gt;
                    &amp;#039;created&amp;#039;: str(post[&amp;#039;created&amp;#039;]),&lt;br /&gt;
                    &amp;#039;body&amp;#039;: post[&amp;#039;body&amp;#039;],&lt;br /&gt;
                    &amp;#039;url&amp;#039;: f&amp;quot;https://hive.blog/@{post[&amp;#039;author&amp;#039;]}/{post[&amp;#039;permlink&amp;#039;]}&amp;quot;,&lt;br /&gt;
                    &amp;#039;tags&amp;#039;: post.get(&amp;#039;json_metadata&amp;#039;, {}).get(&amp;#039;tags&amp;#039;, []) if post.get(&amp;#039;json_metadata&amp;#039;) else [],&lt;br /&gt;
                    &amp;#039;category&amp;#039;: post.get(&amp;#039;category&amp;#039;, &amp;#039;&amp;#039;),&lt;br /&gt;
                    &amp;#039;votes&amp;#039;: len(post.get(&amp;#039;active_votes&amp;#039;, [])),&lt;br /&gt;
                    &amp;#039;payout&amp;#039;: str(post.get(&amp;#039;pending_payout_value&amp;#039;, &amp;#039;0.000 HBD&amp;#039;))&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        except Exception as e:&lt;br /&gt;
            return {&amp;#039;success&amp;#039;: False, &amp;#039;error&amp;#039;: str(e)}&lt;br /&gt;
    &lt;br /&gt;
    def fetch_user_posts(self, username, limit=50):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Fetch all posts by a user using get_account_posts&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        try:&lt;br /&gt;
            account = Account(username, blockchain_instance=self.hive)&lt;br /&gt;
            posts = []&lt;br /&gt;
            &lt;br /&gt;
            # Use get_account_posts method (correct approach)&lt;br /&gt;
            for post in account.get_account_posts(sort=&amp;quot;posts&amp;quot;, limit=limit):&lt;br /&gt;
                try:&lt;br /&gt;
                    posts.append({&lt;br /&gt;
                        &amp;#039;title&amp;#039;: post.get(&amp;#039;title&amp;#039;, &amp;#039;No Title&amp;#039;),&lt;br /&gt;
                        &amp;#039;author&amp;#039;: post[&amp;#039;author&amp;#039;],&lt;br /&gt;
                        &amp;#039;permlink&amp;#039;: post[&amp;#039;permlink&amp;#039;],&lt;br /&gt;
                        &amp;#039;authorperm&amp;#039;: post[&amp;#039;authorperm&amp;#039;],&lt;br /&gt;
                        &amp;#039;created&amp;#039;: str(post.get(&amp;#039;created&amp;#039;, &amp;#039;&amp;#039;)),&lt;br /&gt;
                        &amp;#039;body&amp;#039;: post[&amp;#039;body&amp;#039;],&lt;br /&gt;
                        &amp;#039;url&amp;#039;: f&amp;quot;https://hive.blog/@{post[&amp;#039;author&amp;#039;]}/{post[&amp;#039;permlink&amp;#039;]}&amp;quot;,&lt;br /&gt;
                        &amp;#039;tags&amp;#039;: post.get(&amp;#039;json_metadata&amp;#039;, {}).get(&amp;#039;tags&amp;#039;, []) if post.get(&amp;#039;json_metadata&amp;#039;) else [],&lt;br /&gt;
                        &amp;#039;category&amp;#039;: post.get(&amp;#039;category&amp;#039;, &amp;#039;&amp;#039;),&lt;br /&gt;
                        &amp;#039;votes&amp;#039;: len(post.get(&amp;#039;active_votes&amp;#039;, [])),&lt;br /&gt;
                        &amp;#039;payout&amp;#039;: str(post.get(&amp;#039;pending_payout_value&amp;#039;, &amp;#039;0.000 HBD&amp;#039;))&lt;br /&gt;
                    })&lt;br /&gt;
                    &lt;br /&gt;
                    time.sleep(0.3)  # Be nice to the API&lt;br /&gt;
                    &lt;br /&gt;
                except Exception as e:&lt;br /&gt;
                    print(f&amp;quot;Error processing post: {e}&amp;quot;)&lt;br /&gt;
                    continue&lt;br /&gt;
            &lt;br /&gt;
            return {&amp;#039;success&amp;#039;: True, &amp;#039;data&amp;#039;: posts}&lt;br /&gt;
            &lt;br /&gt;
        except Exception as e:&lt;br /&gt;
            return {&amp;#039;success&amp;#039;: False, &amp;#039;error&amp;#039;: str(e)}&lt;br /&gt;
    &lt;br /&gt;
    def save_as_json(self, posts, filename):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Save posts as JSON&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        with open(filename, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
            json.dump(posts, f, indent=2, ensure_ascii=False)&lt;br /&gt;
        print(f&amp;quot;✅ Saved {len(posts)} posts to {filename}&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    def save_as_xml(self, posts, filename):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Save posts as XML&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        root = ET.Element(&amp;quot;hive_posts&amp;quot;)&lt;br /&gt;
        root.set(&amp;quot;generated&amp;quot;, datetime.now().isoformat())&lt;br /&gt;
        root.set(&amp;quot;count&amp;quot;, str(len(posts)))&lt;br /&gt;
        &lt;br /&gt;
        for post in posts:&lt;br /&gt;
            post_elem = ET.SubElement(root, &amp;quot;post&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
            # Add post attributes&lt;br /&gt;
            for key, value in post.items():&lt;br /&gt;
                if key == &amp;#039;tags&amp;#039; and isinstance(value, list):&lt;br /&gt;
                    tags_elem = ET.SubElement(post_elem, &amp;quot;tags&amp;quot;)&lt;br /&gt;
                    for tag in value:&lt;br /&gt;
                        tag_elem = ET.SubElement(tags_elem, &amp;quot;tag&amp;quot;)&lt;br /&gt;
                        tag_elem.text = str(tag)&lt;br /&gt;
                elif key == &amp;#039;body&amp;#039;:&lt;br /&gt;
                    # Handle body content with CDATA&lt;br /&gt;
                    body_elem = ET.SubElement(post_elem, &amp;quot;body&amp;quot;)&lt;br /&gt;
                    body_elem.text = str(value)&lt;br /&gt;
                else:&lt;br /&gt;
                    elem = ET.SubElement(post_elem, key)&lt;br /&gt;
                    elem.text = str(value)&lt;br /&gt;
        &lt;br /&gt;
        # Pretty print XML&lt;br /&gt;
        rough_string = ET.tostring(root, encoding=&amp;#039;unicode&amp;#039;)&lt;br /&gt;
        reparsed = minidom.parseString(rough_string)&lt;br /&gt;
        pretty_xml = reparsed.toprettyxml(indent=&amp;quot;  &amp;quot;)&lt;br /&gt;
        &lt;br /&gt;
        with open(filename, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
            f.write(pretty_xml)&lt;br /&gt;
        print(f&amp;quot;✅ Saved {len(posts)} posts to {filename}&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    def save_as_wiki(self, posts, filename):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Save posts as MediaWiki syntax&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        with open(filename, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
            f.write(&amp;quot;= Hive Posts Export =\n\n&amp;quot;)&lt;br /&gt;
            f.write(f&amp;quot;Generated: {datetime.now().strftime(&amp;#039;%Y-%m-%d %H:%M:%S&amp;#039;)}\n&amp;quot;)&lt;br /&gt;
            f.write(f&amp;quot;Total Posts: {len(posts)}\n\n&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
            for i, post in enumerate(posts, 1):&lt;br /&gt;
                # Post header&lt;br /&gt;
                f.write(f&amp;quot;== Post {i}: {post[&amp;#039;title&amp;#039;]} ==\n\n&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                # Post metadata table&lt;br /&gt;
                f.write(&amp;quot;{| class=\&amp;quot;wikitable\&amp;quot;\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;! Property !! Value\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| Author || @{post[&amp;#039;author&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| Created || {post[&amp;#039;created&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| URL || [{post[&amp;#039;url&amp;#039;]} View on Hive]\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| AuthorPerm || {post[&amp;#039;authorperm&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| Category || {post.get(&amp;#039;category&amp;#039;, &amp;#039;N/A&amp;#039;)}\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| Votes || {post.get(&amp;#039;votes&amp;#039;, 0)}\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                f.write(f&amp;quot;| Payout || {post.get(&amp;#039;payout&amp;#039;, &amp;#039;N/A&amp;#039;)}\n&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                # Tags&lt;br /&gt;
                if post.get(&amp;#039;tags&amp;#039;):&lt;br /&gt;
                    tags_str = &amp;#039;, &amp;#039;.join([f&amp;quot;[[{tag}]]&amp;quot; for tag in post[&amp;#039;tags&amp;#039;]])&lt;br /&gt;
                    f.write(&amp;quot;|-\n&amp;quot;)&lt;br /&gt;
                    f.write(f&amp;quot;| Tags || {tags_str}\n&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                f.write(&amp;quot;|}\n\n&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                # Post content&lt;br /&gt;
                f.write(&amp;quot;=== Content ===\n\n&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
                # Convert markdown to wiki syntax (basic conversion)&lt;br /&gt;
                wiki_content = self.markdown_to_wiki(post[&amp;#039;body&amp;#039;])&lt;br /&gt;
                f.write(wiki_content)&lt;br /&gt;
                f.write(&amp;quot;\n\n&amp;quot;)&lt;br /&gt;
                f.write(&amp;quot;----\n\n&amp;quot;)  # Horizontal rule between posts&lt;br /&gt;
        &lt;br /&gt;
        print(f&amp;quot;✅ Saved {len(posts)} posts to {filename}&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    def markdown_to_wiki(self, markdown_text):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;Basic conversion from Markdown to MediaWiki syntax&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        wiki_text = markdown_text&lt;br /&gt;
        &lt;br /&gt;
        # Headers&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^# (.*)&amp;#039;, r&amp;#039;= \1 =&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^## (.*)&amp;#039;, r&amp;#039;== \1 ==&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^### (.*)&amp;#039;, r&amp;#039;=== \1 ===&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^#### (.*)&amp;#039;, r&amp;#039;==== \1 ====&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        &lt;br /&gt;
        # Bold and italic&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;\*\*(.*?)\*\*&amp;#039;, r&amp;quot;&amp;#039;&amp;#039;&amp;#039;\1&amp;#039;&amp;#039;&amp;#039;&amp;quot;, wiki_text)  # Bold&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;\*(.*?)\*&amp;#039;, r&amp;quot;&amp;#039;&amp;#039;\1&amp;#039;&amp;#039;&amp;quot;, wiki_text)  # Italic&lt;br /&gt;
        &lt;br /&gt;
        # Links&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;\[([^\]]+)\]\(([^)]+)\)&amp;#039;, r&amp;#039;[\2 \1]&amp;#039;, wiki_text)&lt;br /&gt;
        &lt;br /&gt;
        # Code blocks&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;```(\w*)\n(.*?)```&amp;#039;, r&amp;#039;&amp;lt;syntaxhighlight lang=&amp;quot;\1&amp;quot;&amp;gt;\n\2&amp;lt;/syntaxhighlight&amp;gt;&amp;#039;, wiki_text, flags=re.DOTALL)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;`([^`]+)`&amp;#039;, r&amp;#039;&amp;lt;code&amp;gt;\1&amp;lt;/code&amp;gt;&amp;#039;, wiki_text)&lt;br /&gt;
        &lt;br /&gt;
        # Lists (basic conversion)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^- (.*)&amp;#039;, r&amp;#039;* \1&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        wiki_text = re.sub(r&amp;#039;^\d+\. (.*)&amp;#039;, r&amp;#039;# \1&amp;#039;, wiki_text, flags=re.MULTILINE)&lt;br /&gt;
        &lt;br /&gt;
        return wiki_text&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    parser = argparse.ArgumentParser(description=&amp;#039;Fetch posts from Hive blockchain&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--user&amp;#039;, type=str, help=&amp;#039;Username to fetch posts from&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--post&amp;#039;, type=str, help=&amp;#039;Single post to fetch (format: @author/permlink or full URL)&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--url&amp;#039;, type=str, help=&amp;#039;Hive blog URL to fetch (e.g., https://hive.blog/@user/post)&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--limit&amp;#039;, type=int, default=20, help=&amp;#039;Limit number of posts to fetch&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--output&amp;#039;, type=str, help=&amp;#039;Output file name (extension determines format)&amp;#039;)&lt;br /&gt;
    parser.add_argument(&amp;#039;--format&amp;#039;, type=str, choices=[&amp;#039;json&amp;#039;, &amp;#039;xml&amp;#039;, &amp;#039;wiki&amp;#039;, &amp;#039;txt&amp;#039;], &lt;br /&gt;
                       default=&amp;#039;json&amp;#039;, help=&amp;#039;Output format (json, xml, wiki, txt)&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    args = parser.parse_args()&lt;br /&gt;
    &lt;br /&gt;
    fetcher = HivePostFetcher()&lt;br /&gt;
    &lt;br /&gt;
    # Handle single post (either --post or --url)&lt;br /&gt;
    single_post_input = args.post or args.url&lt;br /&gt;
    if single_post_input:&lt;br /&gt;
        result = fetcher.fetch_single_post(single_post_input)&lt;br /&gt;
        if result[&amp;#039;success&amp;#039;]:&lt;br /&gt;
            post_data = result[&amp;#039;data&amp;#039;]&lt;br /&gt;
            print(f&amp;quot;Title: {post_data[&amp;#039;title&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Author: @{post_data[&amp;#039;author&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Created: {post_data[&amp;#039;created&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;URL: {post_data[&amp;#039;url&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Category: {post_data[&amp;#039;category&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Tags: {&amp;#039;, &amp;#039;.join(post_data[&amp;#039;tags&amp;#039;])}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Votes: {post_data[&amp;#039;votes&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(f&amp;quot;Payout: {post_data[&amp;#039;payout&amp;#039;]}&amp;quot;)&lt;br /&gt;
            print(&amp;quot;\n&amp;quot; + &amp;quot;=&amp;quot;*60 + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            print(post_data[&amp;#039;body&amp;#039;])&lt;br /&gt;
            &lt;br /&gt;
            # Save single post if output specified&lt;br /&gt;
            if args.output:&lt;br /&gt;
                posts_list = [post_data]&lt;br /&gt;
                output_format = args.format&lt;br /&gt;
                &lt;br /&gt;
                # Auto-detect format from filename extension if not specified&lt;br /&gt;
                if &amp;#039;.&amp;#039; in args.output:&lt;br /&gt;
                    ext = args.output.split(&amp;#039;.&amp;#039;)[-1].lower()&lt;br /&gt;
                    if ext in [&amp;#039;json&amp;#039;, &amp;#039;xml&amp;#039;, &amp;#039;wiki&amp;#039;, &amp;#039;txt&amp;#039;]:&lt;br /&gt;
                        output_format = ext&lt;br /&gt;
                &lt;br /&gt;
                if output_format == &amp;#039;json&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_json(posts_list, args.output)&lt;br /&gt;
                elif output_format == &amp;#039;xml&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_xml(posts_list, args.output)&lt;br /&gt;
                elif output_format == &amp;#039;wiki&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_wiki(posts_list, args.output)&lt;br /&gt;
                else:  # txt format&lt;br /&gt;
                    with open(args.output, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
                        f.write(f&amp;quot;Title: {post_data[&amp;#039;title&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                        f.write(f&amp;quot;Author: @{post_data[&amp;#039;author&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                        f.write(f&amp;quot;Created: {post_data[&amp;#039;created&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                        f.write(f&amp;quot;URL: {post_data[&amp;#039;url&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                        f.write(f&amp;quot;AuthorPerm: {post_data[&amp;#039;authorperm&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                        f.write(&amp;quot;=&amp;quot;*60 + &amp;quot;\n\n&amp;quot;)&lt;br /&gt;
                        f.write(post_data[&amp;#039;body&amp;#039;])&lt;br /&gt;
                    print(f&amp;quot;✅ Saved to {args.output}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Error: {result[&amp;#039;error&amp;#039;]}&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    elif args.user:&lt;br /&gt;
        result = fetcher.fetch_user_posts(args.user, args.limit)&lt;br /&gt;
        if result[&amp;#039;success&amp;#039;]:&lt;br /&gt;
            posts = result[&amp;#039;data&amp;#039;]&lt;br /&gt;
            print(f&amp;quot;Fetched {len(posts)} posts for @{args.user}&amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
            if args.output:&lt;br /&gt;
                output_format = args.format&lt;br /&gt;
                &lt;br /&gt;
                # Auto-detect format from filename extension&lt;br /&gt;
                if &amp;#039;.&amp;#039; in args.output:&lt;br /&gt;
                    ext = args.output.split(&amp;#039;.&amp;#039;)[-1].lower()&lt;br /&gt;
                    if ext in [&amp;#039;json&amp;#039;, &amp;#039;xml&amp;#039;, &amp;#039;wiki&amp;#039;, &amp;#039;txt&amp;#039;]:&lt;br /&gt;
                        output_format = ext&lt;br /&gt;
                &lt;br /&gt;
                if output_format == &amp;#039;json&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_json(posts, args.output)&lt;br /&gt;
                elif output_format == &amp;#039;xml&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_xml(posts, args.output)&lt;br /&gt;
                elif output_format == &amp;#039;wiki&amp;#039;:&lt;br /&gt;
                    fetcher.save_as_wiki(posts, args.output)&lt;br /&gt;
                else:  # txt format&lt;br /&gt;
                    with open(args.output, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
                        for i, post in enumerate(posts, 1):&lt;br /&gt;
                            f.write(f&amp;quot;{&amp;#039;=&amp;#039;*60}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;POST {i}: {post[&amp;#039;title&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;Author: @{post[&amp;#039;author&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;Created: {post[&amp;#039;created&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;URL: {post[&amp;#039;url&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;AuthorPerm: {post[&amp;#039;authorperm&amp;#039;]}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;Tags: {&amp;#039;, &amp;#039;.join(post[&amp;#039;tags&amp;#039;])}\n&amp;quot;)&lt;br /&gt;
                            f.write(f&amp;quot;{&amp;#039;=&amp;#039;*60}\n\n&amp;quot;)&lt;br /&gt;
                            f.write(post[&amp;#039;body&amp;#039;])&lt;br /&gt;
                            f.write(f&amp;quot;\n\n{&amp;#039;=&amp;#039;*60}\n\n&amp;quot;)&lt;br /&gt;
                    print(f&amp;quot;✅ Saved to {args.output}&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                for i, post in enumerate(posts, 1):&lt;br /&gt;
                    print(f&amp;quot;\n{i}. {post[&amp;#039;title&amp;#039;]}&amp;quot;)&lt;br /&gt;
                    print(f&amp;quot;   Created: {post[&amp;#039;created&amp;#039;]}&amp;quot;)&lt;br /&gt;
                    print(f&amp;quot;   URL: {post[&amp;#039;url&amp;#039;]}&amp;quot;)&lt;br /&gt;
                    print(f&amp;quot;   Tags: {&amp;#039;, &amp;#039;.join(post[&amp;#039;tags&amp;#039;])}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Error: {result[&amp;#039;error&amp;#039;]}&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        parser.print_help()&lt;br /&gt;
        print(&amp;quot;\nExamples:&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  # Fetch user posts as JSON&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  python hive_fetcher.py --user completenoobs --limit 10 --output posts.json&amp;quot;)&lt;br /&gt;
        print(&amp;quot;&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  # Fetch user posts as XML&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  python hive_fetcher.py --user completenoobs --output posts.xml&amp;quot;)&lt;br /&gt;
        print(&amp;quot;&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  # Fetch user posts as Wiki syntax&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  python hive_fetcher.py --user completenoobs --output posts.wiki&amp;quot;)&lt;br /&gt;
        print(&amp;quot;&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  # Fetch specific post by URL&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  python hive_fetcher.py --url &amp;#039;https://hive.blog/completenoobs/@completenoobs/completenoobs-genesis&amp;#039;&amp;quot;)&lt;br /&gt;
        print(&amp;quot;&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  # Fetch specific post by authorperm&amp;quot;)&lt;br /&gt;
        print(&amp;quot;  python hive_fetcher.py --post &amp;#039;@completenoobs/completenoobs-genesis&amp;#039; --output genesis.xml&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to use script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usage: hive-fetch.py [-h] [--user USER] [--post POST] [--url URL] [--limit LIMIT] [--output OUTPUT] [--format {json,xml,wiki,txt}]&lt;br /&gt;
&lt;br /&gt;
Fetch posts from Hive blockchain&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --user USER           Username to fetch posts from&lt;br /&gt;
  --post POST           Single post to fetch (format: @author/permlink or full URL)&lt;br /&gt;
  --url URL             Hive blog URL to fetch (e.g., https://hive.blog/@user/post)&lt;br /&gt;
  --limit LIMIT         Limit number of posts to fetch&lt;br /&gt;
  --output OUTPUT       Output file name (extension determines format)&lt;br /&gt;
  --format {json,xml,wiki,txt}&lt;br /&gt;
                        Output format (json, xml, wiki, txt)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
  # Fetch user posts as JSON&lt;br /&gt;
  python hive_fetcher.py --user completenoobs --limit 10 --output posts.json&lt;br /&gt;
&lt;br /&gt;
  # Fetch user posts as XML&lt;br /&gt;
  python hive_fetcher.py --user completenoobs --output posts.xml&lt;br /&gt;
&lt;br /&gt;
  # Fetch user posts as Wiki syntax&lt;br /&gt;
  python hive_fetcher.py --user completenoobs --output posts.wiki&lt;br /&gt;
&lt;br /&gt;
  # Fetch specific post by URL&lt;br /&gt;
  python hive_fetcher.py --url &amp;#039;https://hive.blog/completenoobs/@completenoobs/completenoobs-genesis&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  # Fetch specific post by authorperm&lt;br /&gt;
  python hive_fetcher.py --post &amp;#039;@completenoobs/completenoobs-genesis&amp;#039; --output genesis.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;syntax_wiki&amp;lt;/b&amp;gt; example post: https://hive.blog/hive-138301/@completenoobs/find-hive-users-memo-key-and-send-encrypted-message-l7a&lt;br /&gt;
* &amp;lt;b&amp;gt;syntax_mark&amp;lt;b&amp;gt; example post: https://hive.blog/completenoobs/@completenoobs/n33bcoin-how-to-fork-bitcoin-for-learning-by-tinkering&lt;br /&gt;
&lt;br /&gt;
====To print text of post to terminal:====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 hive-fetch.py --url https://hive.blog/hive-138301/@completenoobs/find-hive-users-memo-key-and-send-encrypted-message-l7a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====To print syntax_wiki to file====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 hive-fetch.py --url &amp;quot;https://hive.blog/hive-138301/@completenoobs/find-hive-users-memo-key-and-send-encrypted-message-l7a&amp;quot; --output test.wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====To print syntax_markdown to syntax_wiki - BUGGY====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;python3 hive-fetch.py --url &amp;quot;https://hive.blog/completenoobs/@completenoobs/n33bcoin-how-to-fork-bitcoin-for-learning-by-tinkering&amp;quot; --output test2.wiki&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>AwesomO</name></author>
	</entry>
</feed>