#!/usr/bin/env python3 import os import json import logging from datetime import datetime import requests from .abcsender import AbcSender from utils import config """ Send a sound sample """ __author__ = "@tormakris" __copyright__ = "Copyright 2020, Birbnetes Team" __module_name__ = "soundsender" __version__text__ = "1" class SoundSender(AbcSender): """ SoundSender class, responsible for sending sound samples to the cloud. """ def sendvalue(self, value: str, decision: bool) -> None: """ Send a sound sample to the cloud. :return: """ if decision: files = { "file": (os.path.basename(value), open(value, 'rb').read(), 'audio/wave', {'Content-length': os.path.getsize(value)}), "description": ( None, json.dumps({'date': datetime.now().isoformat(), 'device_id': config.DEVICE_ID}), "application/json") } r = requests.post(config.API_URL + "/sample", files=files) logging.debug(f"Content: {r.content.decode()}") logging.debug(f"Headers: {r.headers}") r.raise_for_status()