bharadwaj-raju / weatherdesk Goto Github PK
View Code? Open in Web Editor NEWMOVED: https://gitlab.com/bharadwaj-raju/WeatherDesk
Home Page: https://gitlab.com/bharadwaj-raju/WeatherDesk
License: GNU General Public License v3.0
MOVED: https://gitlab.com/bharadwaj-raju/WeatherDesk
Home Page: https://gitlab.com/bharadwaj-raju/WeatherDesk
License: GNU General Public License v3.0
% cat ~/.weatherdesk_script.AppleScript
tell application 'Finder'
set desktop picture to POSIX file "/Users/sli/Pictures/FireWatch-WeatherDesk-Pack-master/normal.jpg"
end tell
% osascript ~/.weatherdesk_script.AppleScript
17:18: syntax error: Expected expression, property or key form, etc. but found unknown token. (-2741)
Replace '
with "
% cat ~/.weatherdesk_script.AppleScript | sed s/\'/\"/g
tell application "Finder"
set desktop picture to POSIX file "/Users/sli/Pictures/FireWatch-WeatherDesk-Pack-master/normal.jpg"
end tell
% cat ~/.weatherdesk_script.AppleScript | sed s/\'/\"/g | osascript
% echo $?
0
I tried:
weatherdesk.py [-c name [Montreal]]
weatherdesk.py : command not found
python3 WeatherDesk.py [-c name [Montreal]]
python3: can't open file 'WeatherDesk.py': [Errno 2] No such file or directory
I got an error while using your script in my Xfce4 desktop environment. See below:
[Main loop]
Traceback (most recent call last):
File "WeatherDesk.py", line 419, in <module>
main()
File "WeatherDesk.py", line 406, in main
os.path.join(walls_dir, get_file_name(weather, time=use_time)))
File "/home/xek6ae/WeatherDesk/Desktop.py", line 203, in set_wallpaper
for i in list_of_properties.subprocesslit('\n'):
AttributeError: 'str' object has no attribute 'subprocesslist'
I change the line 203 of Dektop.py for i in list_of_properties.split('\n'):
an then the script works fine for me.
after running python3 WeatherDesk.py
without --no-weather
getting this exception [Errno -5] No address associated with hostname
stanley@Smith558-Lenovo:~$ cd WeatherDesk-master/
stanley@Smith558-Lenovo:~/WeatherDesk-master$ python3 WeatherDesk.py --time 4
[Main loop]
Traceback (most recent call last):
File "/usr/lib/python3.8/urllib/request.py", line 1326, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib/python3.8/http/client.py", line 1240, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1286, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1235, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1006, in _send_output
self.send(msg)
File "/usr/lib/python3.8/http/client.py", line 946, in send
self.connect()
File "/usr/lib/python3.8/http/client.py", line 1402, in connect
super().connect()
File "/usr/lib/python3.8/http/client.py", line 917, in connect
self.sock = self._create_connection(
File "/usr/lib/python3.8/socket.py", line 787, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -5] No address associated with hostname
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "WeatherDesk.py", line 356, in <module>
set_conditional_wallpaper(parsed_args['city'],
File "WeatherDesk.py", line 305, in set_conditional_wallpaper
weather, actual_city = get_current_weather(city)
File "WeatherDesk.py", line 294, in get_current_weather
weather_json = json.loads(urlopen(weather_json_url).read().decode('utf-8'))['query']['results']['channel']
File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib/python3.8/urllib/request.py", line 1369, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/usr/lib/python3.8/urllib/request.py", line 1329, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -5] No address associated with hostname>
/bin/sh: 1: 4: not found
how to uninstall?
Hello,
Thx for python script :)
I am currently in Saint-lô, and your script fail because i have non ascii character in my city.
[Main loop]
Traceback (most recent call last):
File "WeatherDesk.py", line 377, in <module>
main()
File "WeatherDesk.py", line 350, in main
print(urlopen(weather_json_url))
File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/lib/python3.6/urllib/request.py", line 1361, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1250, in _send_request
self.putrequest(method, url, **skips)
File "/usr/lib/python3.6/http/client.py", line 1117, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode character '\xf4' in position 147: ordinal not in range(128)
I have fixed WeatherDesk.py by importing urllib.parse.
...
import urllib.parse
...
def main():
weather_json_url = r'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22' + urllib.parse.quote(city) + '%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys'
weather_json = json.loads(urlopen(weather_json_url).read().decode('utf-8'))
I think you should add default wallpapers library so it is easier to try the software - run it and it works.
Now I see that I have to find wallpapers, rename them and then try it.
As you may be aware, directly setting a custom wallpaper for KDE isn't really possible at the moment because the api is not exposed for security reasons.
However this can mitigated by asking the user to point kde's desktop slideshow at a designated folder with a smallish timeout (say, 4 seconds). The trick I have found is to have exactly one file with a randomized filename in a folder. On each wallpaper change, generate a new random name and move the new file in with it, and then delete the old file. It will work most of the time because collisions are very rare.
Example here, line 164-173 at https://github.com/cmdrkotori/qt314wall/blob/master/main.cpp#L164
We can give own specified wallpapers or we can make the arrangements to have some cool urls to have them once connected to internet to download on the local storage and use it.
Hello my name is jakub Veselovský. can somebody help how to install this? (Windows)
Minor fix for OS X errors, replacing single quotes with double quotes, and removing "to":
Desktop.py, lines 270-274:
OSX_SCRIPT = '''tell application "Finder"
set desktop picture to POSIX file "%s"
end tell
''' % image
To put it in simple terms it crashes.
In more detail, first it didn't have a needed dependency for the file psutil, that I solved by running sudo apt install python3-psutil
.
But now it crashes with the following:
[City checking] No error.
[Main loop]
Traceback (most recent call last):
File "WeatherDesk.py", line 396, in <module>
weather = str(weather_json['query']['results']['channel']['item']['condition']['text']).lower()
TypeError: 'NoneType' object is not subscriptable
Hi.
In Desktop.py there are 3 instances of a weird "os.path.absubprocessath" call.
I guess it should be os.path.abspath and some search/replace has been a bit zealous.
sudo python3 WeatherDesk.py --city chisinau
[City checking] No error.
mostly clear
Chisinau Chisinau
/home/myname/.weatherdesk_walls/normal.jpg
Traceback (most recent call last):
File "WeatherDesk.py", line 379, in
os.path.join(walls_dir, get_file_name(weather, time=use_time)))
File "/home/myname/Desktop/WeatherDesk-master/Desktop.py", line 104, in set_wallpaper
desktop_env = get_desktop_environment()
File "/home/myname/Desktop/WeatherDesk-master/Desktop.py", line 79, in get_desktop_environment
elif is_running('xfce-mcs-manage'): return 'xfce4'
File "/home/myname/Desktop/WeatherDesk-master/Desktop.py", line 96, in is_running
if re.search(process, x):
File "/usr/lib/python3.5/re.py", line 173, in search
return _compile(pattern, flags).search(string)
TypeError: cannot use a string pattern on a bytes-like object
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "WeatherDesk.py", line 399, in
print(trace_main_loop)
NameError: name 'trace_main_loop' is not defined
After I suspend and resume my laptop, WeatherDesk stops working. I get the following error on the first run after resume:
[Main loop]
Traceback (most recent call last):
File "/usr/lib/python3.5/urllib/request.py", line 1240, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/usr/lib/python3.5/http/client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python3.5/http/client.py", line 1128, in _send_request
self.endheaders(body)
File "/usr/lib/python3.5/http/client.py", line 1079, in endheaders
self._send_output(message_body)
File "/usr/lib/python3.5/http/client.py", line 911, in _send_output
self.send(msg)
File "/usr/lib/python3.5/http/client.py", line 854, in send
self.connect()
File "/usr/lib/python3.5/http/client.py", line 1229, in connect
super().connect()
File "/usr/lib/python3.5/http/client.py", line 826, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/python3.5/socket.py", line 693, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "WeatherDesk/WeatherDesk.py", line 367, in <module>
weather_json = json.loads(urlopen(weather_json_url).read().decode('utf-8'))
File "/usr/lib/python3.5/urllib/request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.5/urllib/request.py", line 465, in open
response = self._open(req, data)
File "/usr/lib/python3.5/urllib/request.py", line 483, in _open
'_open', req)
File "/usr/lib/python3.5/urllib/request.py", line 443, in _call_chain
result = func(*args)
File "/usr/lib/python3.5/urllib/request.py", line 1283, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/usr/lib/python3.5/urllib/request.py", line 1242, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
I'm running Python 3.5.1 on Arch Linux.
The readme says that it supports windows, but it seems that it is not updating the wall paper, (windows 10) looking at the Desktop.py it seems as if its looking for some .bat file after it runs the rundll3d.exe line but that .bat file doesn't exist.
On OS X, running this will only change the wallpaper on the active desktop. Would be awesome to see it change the wallpaper on all desktops.
See: https://realpython.com/blog/python/the-most-diabolical-python-antipattern/
Also, the code fails numerous PEP-8 tests.
python3 WeatherDesk.py --help
Traceback (most recent call last):
File "WeatherDesk.py", line 14, in
import Desktop
File "/home/mizi/Programmi/WeatherDesk/Desktop.py", line 157
old_working_dir = os.getcwd()
^
IndentationError: unexpected indent
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.