Initial commit
This commit is contained in:
commit
a81ce5bcbe
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.env.sh
|
||||
venv/
|
61
flake.lock
Normal file
61
flake.lock
Normal file
@ -0,0 +1,61 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1718318537,
|
||||
"narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
28
flake.nix
Normal file
28
flake.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
description = "A very basic python flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
shell = "zsh";
|
||||
in {
|
||||
devShell = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
python3
|
||||
pyright
|
||||
black
|
||||
];
|
||||
OPENAI_API_BASE="https://ai.trkt.in";
|
||||
shellHook = ''
|
||||
source .env.sh
|
||||
exec ${shell}
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
90
src/main.py
Normal file
90
src/main.py
Normal file
@ -0,0 +1,90 @@
|
||||
import os
|
||||
from pyowm.owm import OWM
|
||||
from openai import OpenAI
|
||||
from datetime import datetime
|
||||
|
||||
number_map = {
|
||||
"0": "zero",
|
||||
"1": "one",
|
||||
"2": "two",
|
||||
"3": "three",
|
||||
"4": "four",
|
||||
"5": "six",
|
||||
"6": "six",
|
||||
"7": "seven",
|
||||
"8": "eight",
|
||||
"9": "nine",
|
||||
"10": "ten",
|
||||
"11": "eleven",
|
||||
"12": "twelve",
|
||||
"13": "thirteen",
|
||||
"14": "fourteen",
|
||||
"15": "fifteen",
|
||||
"16": "sixteen",
|
||||
"17": "seventeen",
|
||||
"18": "eighteen",
|
||||
"19": "nineteen",
|
||||
"20": "twenty",
|
||||
"30": "thirty",
|
||||
"40": "forty",
|
||||
"50": "fifty",
|
||||
}
|
||||
|
||||
|
||||
def serialize_time_part(part):
|
||||
part_string = ""
|
||||
if part in number_map:
|
||||
part_string += number_map[part]
|
||||
else:
|
||||
tens_str = number_map[f"{part[0]}0"]
|
||||
ones_str = number_map[part[1]]
|
||||
part_string += f"{tens_str}-{ones_str}"
|
||||
return part_string
|
||||
|
||||
|
||||
def serialize_time(time):
|
||||
hour = str(time.hour)
|
||||
if time.hour > 12:
|
||||
hour = str(time.hour - 12)
|
||||
hour = serialize_time_part(hour)
|
||||
minute = str(time.minute)
|
||||
if time.minute < 10:
|
||||
minute = f"o'{serialize_time_part(minute)}"
|
||||
else:
|
||||
minute = serialize_time_part(minute)
|
||||
time_string = f"{hour} {minute}"
|
||||
return time_string
|
||||
|
||||
|
||||
def generate_rhyme(time):
|
||||
client = OpenAI()
|
||||
response = client.chat.completions.create(
|
||||
model="gpt-4",
|
||||
messages=[
|
||||
{
|
||||
"role": "user",
|
||||
"content": f"Finish this sentence about the time with a rhyme. It's {time}, ",
|
||||
}
|
||||
],
|
||||
)
|
||||
rhyme = response.choices[0].message.content
|
||||
return f"It's {time} {rhyme}"
|
||||
|
||||
|
||||
def get_weather():
|
||||
pass
|
||||
|
||||
|
||||
def main():
|
||||
use_time = datetime.now()
|
||||
serialized_time = serialize_time(use_time)
|
||||
print(serialized_time)
|
||||
sentence = generate_rhyme(serialized_time)
|
||||
weather = get_weather()
|
||||
|
||||
print(sentence)
|
||||
print(weather)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user