Sunday, March 17, 2019

Get bookmarks from your Firefox browser database.

This simple example tutorial is about reading the bookmarks from firefox database.
The database is an SQLite database.
You need to create a python file named: firefox_bookmarks.py.
Change your windows account on the bookmarks_path.
The script is simple to understand and comes with two functions: execute_query and get_bookmarks.
Follow the commented source code to understand how it's working the python script:
import os
import sqlite3

# execute a query on sqlite cursor
def execute_query(cursor, query):
    try:
        cursor.execute(query)
    except Exception as error:
        print(str(error) + "\n " + query)
# get bookmarks from firefox sqlite database file and print all
def get_bookmarks(cursor):
    bookmarks_query = """select url, moz_places.title, rev_host, frecency,
    last_visit_date from moz_places  join  \
    moz_bookmarks on moz_bookmarks.fk=moz_places.id where visit_count>0
    and moz_places.url  like 'http%'
    order by dateAdded desc;"""
    execute_query(cursor, bookmarks_query)
    for row in cursor:
        link = row[0]
        title = row[1]
        print(link,title)
# set the path of firefox folder with databases
bookmarks_path = "C:/Users/YOUR_WINDOWS_ACCOUNT/AppData/Roaming/Mozilla/Firefox/Profiles/"
# get firefox profile
profiles = [i for i in os.listdir(bookmarks_path) if i.endswith('.default')]
# get sqlite database of firefox bookmarks
sqlite_path = bookmarks_path+ profiles[0]+'/places.sqlite'
#
if os.path.exists(sqlite_path):
    firefox_connection = sqlite3.connect(sqlite_path)
cursor = firefox_connection.cursor()
get_bookmarks(cursor)
cursor.close()
The result of running the script comes with my bookmarks of Firefox:
C:\Python364>python.exe firefox_bookmarks.py
https://twitter.com/ Twitter. It's what's happening. 

Friday, March 15, 2019

Using Tornado - first steps...

About Tornado you can read at GitHub.
The basic info about this framework is this intro :
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.
C:\Python364>git clone https://github.com/facebook/tornado.git
Cloning into 'tornado'...
remote: Enumerating objects: 51, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 22803 (delta 17), reused 51 (delta 17), pack-reused 22752
Receiving objects: 100% (22803/22803), 8.41 MiB | 2.18 MiB/s, done.
Resolving deltas: 100% (16735/16735), done.
Checking out files: 100% (302/302), done.

C:\Python364>cd tornado

C:\Python364\tornado>C:\Python364\python.exe setup.py install
running install
...
Processing dependencies for tornado==6.1.dev1
Finished processing dependencies for tornado==6.1.dev1
Use this demo chat to test it:
C:\Python364\tornado\demos\chat>C:\Python364\python.exe chatdemo.py
[I 190315 20:26:25 web:2162] 200 GET / (::1) 47.22ms
You can see the result into your browsers using http://localhost:8888
You can change port and address on this source code row with your IP address:
app.listen(options.port, '92.76.67.102')
The result is a chat example with Tornado framework.
The tornado comes with many demos for you, see all of this:
  • blog
  • chat
  • facebook
  • file_upload
  • helloworld
  • s3server
  • tcpecho
  • twitter
  • websocket
  • webspider