84 """Takes parsed JSON from the API server and turns it into a :py:obj:`dict`
87 Attributes `(class Match) <https://github.com/TinEye/pytineye/blob/main/pytineye/api.py>`__
89 - `image_url`, link to the result image.
90 - `domain`, domain this result was found on.
91 - `score`, a number (0 to 100) that indicates how closely the images match.
92 - `width`, image width in pixels.
93 - `height`, image height in pixels.
94 - `size`, image area in pixels.
95 - `format`, image format.
96 - `filesize`, image size in bytes.
97 - `overlay`, overlay URL.
98 - `tags`, whether this match belongs to a collection or stock domain.
100 - `backlinks`, a list of Backlink objects pointing to the original websites
101 and image URLs. List items are instances of :py:obj:`dict`, (`Backlink
102 <https://github.com/TinEye/pytineye/blob/main/pytineye/api.py>`__):
104 - `url`, the image URL to the image.
105 - `backlink`, the original website URL.
106 - `crawl_date`, the date the image was crawled.
115 if "backlinks" in match_json:
117 for backlink_json
in match_json[
"backlinks"]:
118 if not isinstance(backlink_json, dict):
121 crawl_date = backlink_json.get(
"crawl_date")
123 crawl_date = datetime.fromisoformat(crawl_date[:-3])
125 crawl_date = datetime.min
129 'url': backlink_json.get(
"url"),
130 'backlink': backlink_json.get(
"backlink"),
131 'crawl_date': crawl_date,
132 'image_name': backlink_json.get(
"image_name"),
137 'image_url': match_json.get(
"image_url"),
138 'domain': match_json.get(
"domain"),
139 'score': match_json.get(
"score"),
140 'width': match_json.get(
"width"),
141 'height': match_json.get(
"height"),
142 'size': match_json.get(
"size"),
143 'image_format': match_json.get(
"format"),
144 'filesize': match_json.get(
"filesize"),
145 'overlay': match_json.get(
"overlay"),
146 'tags': match_json.get(
"tags"),
147 'backlinks': backlinks,