A web-based speech-to-code editor for humans.
A dead simple mobile app written in Flutter that tells dad jokes.
sethwilsonUS/catalogue-of-verse 0
cataloguing the verse of J. R. R. Tolkien eventually with metrical and rhyme information
A cool Game of Thrones website
Dad Jokes for Discord
Simple command interpreter written in Java.
The https://freeCodeCamp.org open source codebase and curriculum. Learn to code and help nonprofits.
Procedural Haiku generation with Twitter API 1.1
sethwilsonUS/gatsby-starter-blog 0
Gatsby starter for creating a blog
Trade a Pull Request for a Sticker
startedchrisdrymon/greek-morph-tagger
started time in a day
issue commentseatgeek/fuzzywuzzy
Difflib and python-Levenshtein give different ratios in some cases
The difference is because difflib
uses the Ratcliff-Obershelp algorithm, not the Levenshtein distance. Probably the readme should be updated, because not always Levenshtein distance is used.
comment created time in a day
pull request commentsukeesh/Jarvis
Plugin: scan_network with nmap
Yeah, Jarvis is now Python 3 only - feel free to use type hints. I should probably use them more often, too ;).
comment created time in 2 days
issue openedawsdocs/elastic-beanstalk-samples
Beanstalk not using shared load balancer and creates another one
Hi, I am trying to use a shared load balancer in the environment and i have specified everything in the ebextensions file
While uploading the app, it creates a listener in the shared load balancer but also creates another load balancer
I have specified the configuration as below
namespace: aws:elasticbeanstalk:environment option_name: ServiceRole value:
-
namespace: aws:elasticbeanstalk:environment option_name: LoadBalancerType value: application
-
namespace: aws:elasticbeanstalk:environment option_name: LoadBalancerIsShared value: true
-
namespace: aws:elbv2:loadbalancer option_name:ManagedSecurityGroup value:
-
namespace: aws:elbv2:loadbalancer option_name: SharedLoadBalancer value: arn
has anyone faced this issue before or am I missing something Thanks Sameer
created time in 3 days
Pull request review commentsukeesh/Jarvis
Plugin: scan_network with nmap
+import nmap+import json+from plugin import plugin, require, LINUX+from colorama import Fore+++def error_output(jarvis, nm_scan):+ jarvis.say('Please, check your input is correct\n', Fore.RED)+ jarvis.say('This might hint what the problem is:\n', Fore.YELLOW)+ jarvis.say(str(nm_scan.scaninfo()['error']), Fore.YELLOW)+++def show_output(jarvis, results):+ uphosts = results['nmap']['scanstats']['uphosts']+ jarvis.say('Number of hosts up: ' + uphosts + '\n', Fore.GREEN)+ devices = results['scan']+ for d in devices:+ jarvis.say(d, Fore.GREEN)+ jarvis.say('\tName: ' + devices[d]['hostnames'][0]['name'], Fore.GREEN)+ tcp_ports = devices[d]['tcp']+ for port in tcp_ports:+ jarvis.say('\tOpen TCP Port: ' + str(port), Fore.GREEN)+ jarvis.say('\t\tProtocol Name: ' + tcp_ports[port]['name'], Fore.GREEN)+ jarvis.say('\t\tProduct: ' + tcp_ports[port]['product'], Fore.GREEN)+ jarvis.say('\t\tVersion: ' + tcp_ports[port]['version'], Fore.GREEN)+ print('----------------------------\n')+++@require(network=True)+@require(native="nmap", platform=LINUX)+@plugin('scan_network')+def scan(jarvis, s):+ """+ Scans provided network for all connected devices+ Usage example: jarvis scan_network 172.16.1.10/24+ """+ nm_scan = nmap.PortScanner()+ jarvis.say('Please wait, this might take a while!')+ if not s:+ jarvis.say('You need to provide address as input!\n'+ ' For example: jarvis scan_network x.x.x.x/24', Fore.YELLOW)+ else:+ nm_scan.scan(s)+ if 'error' in nm_scan.scaninfo():+ error_output(jarvis, nm_scan)+ else:
Makes sense, worst case scenario users will simply end up with larger error message.
comment created time in 3 days
pull request commentsukeesh/Jarvis
Plugin: scan_network with nmap
Thanks for the fast review!
Up to you really, I don't mind either way. If you want to have the functionality sooner probably merge it and I will implement your suggestions over the weekend and make a new PR. Also, I wanted to ask you about using Python type hints. I usually use type hints with python3, but I noticed that there are not any in the code. Is that because we want to have compatibility with python2? Should I add type hints in my next commits or refrain for doing that for now?
Btw, awesome project and idea!
comment created time in 3 days
Pull request review commentsukeesh/Jarvis
Plugin: scan_network with nmap
+import nmap+import json+from plugin import plugin, require, LINUX+from colorama import Fore+++def error_output(jarvis, nm_scan):+ jarvis.say('Please, check your input is correct\n', Fore.RED)+ jarvis.say('This might hint what the problem is:\n', Fore.YELLOW)+ jarvis.say(str(nm_scan.scaninfo()['error']), Fore.YELLOW)+++def show_output(jarvis, results):+ uphosts = results['nmap']['scanstats']['uphosts']+ jarvis.say('Number of hosts up: ' + uphosts + '\n', Fore.GREEN)+ devices = results['scan']+ for d in devices:+ jarvis.say(d, Fore.GREEN)+ jarvis.say('\tName: ' + devices[d]['hostnames'][0]['name'], Fore.GREEN)+ tcp_ports = devices[d]['tcp']+ for port in tcp_ports:+ jarvis.say('\tOpen TCP Port: ' + str(port), Fore.GREEN)+ jarvis.say('\t\tProtocol Name: ' + tcp_ports[port]['name'], Fore.GREEN)+ jarvis.say('\t\tProduct: ' + tcp_ports[port]['product'], Fore.GREEN)+ jarvis.say('\t\tVersion: ' + tcp_ports[port]['version'], Fore.GREEN)+ print('----------------------------\n')+++@require(network=True)+@require(native="nmap", platform=LINUX)+@plugin('scan_network')+def scan(jarvis, s):+ """+ Scans provided network for all connected devices+ Usage example: jarvis scan_network 172.16.1.10/24+ """+ nm_scan = nmap.PortScanner()+ jarvis.say('Please wait, this might take a while!')+ if not s:+ jarvis.say('You need to provide address as input!\n'+ ' For example: jarvis scan_network x.x.x.x/24', Fore.YELLOW)+ else:+ nm_scan.scan(s)
Thanks for pointing that out!
comment created time in 3 days
Pull request review commentsukeesh/Jarvis
Plugin: scan_network with nmap
+import nmap+import json+from plugin import plugin, require, LINUX+from colorama import Fore+++def error_output(jarvis, nm_scan):+ jarvis.say('Please, check your input is correct\n', Fore.RED)+ jarvis.say('This might hint what the problem is:\n', Fore.YELLOW)+ jarvis.say(str(nm_scan.scaninfo()['error']), Fore.YELLOW)+++def show_output(jarvis, results):+ uphosts = results['nmap']['scanstats']['uphosts']+ jarvis.say('Number of hosts up: ' + uphosts + '\n', Fore.GREEN)+ devices = results['scan']+ for d in devices:+ jarvis.say(d, Fore.GREEN)+ jarvis.say('\tName: ' + devices[d]['hostnames'][0]['name'], Fore.GREEN)+ tcp_ports = devices[d]['tcp']+ for port in tcp_ports:+ jarvis.say('\tOpen TCP Port: ' + str(port), Fore.GREEN)+ jarvis.say('\t\tProtocol Name: ' + tcp_ports[port]['name'], Fore.GREEN)+ jarvis.say('\t\tProduct: ' + tcp_ports[port]['product'], Fore.GREEN)+ jarvis.say('\t\tVersion: ' + tcp_ports[port]['version'], Fore.GREEN)+ print('----------------------------\n')+++@require(network=True)+@require(native="nmap", platform=LINUX)+@plugin('scan_network')+def scan(jarvis, s):+ """+ Scans provided network for all connected devices+ Usage example: jarvis scan_network 172.16.1.10/24+ """+ nm_scan = nmap.PortScanner()+ jarvis.say('Please wait, this might take a while!')+ if not s:+ jarvis.say('You need to provide address as input!\n'+ ' For example: jarvis scan_network x.x.x.x/24', Fore.YELLOW)+ else:+ nm_scan.scan(s)+ if 'error' in nm_scan.scaninfo():+ error_output(jarvis, nm_scan)+ else:
Looks like nmap may still produce meaningful output even if an error was reported. At last on my system it reports:
warning: Unable to determine any DNS servers.
(don't know why) but still works. Maybe remove the else-clause and call the code in any case?
comment created time in 3 days
Pull request review commentsukeesh/Jarvis
Plugin: scan_network with nmap
+import nmap+import json+from plugin import plugin, require, LINUX+from colorama import Fore+++def error_output(jarvis, nm_scan):+ jarvis.say('Please, check your input is correct\n', Fore.RED)+ jarvis.say('This might hint what the problem is:\n', Fore.YELLOW)+ jarvis.say(str(nm_scan.scaninfo()['error']), Fore.YELLOW)+++def show_output(jarvis, results):+ uphosts = results['nmap']['scanstats']['uphosts']+ jarvis.say('Number of hosts up: ' + uphosts + '\n', Fore.GREEN)+ devices = results['scan']+ for d in devices:+ jarvis.say(d, Fore.GREEN)+ jarvis.say('\tName: ' + devices[d]['hostnames'][0]['name'], Fore.GREEN)+ tcp_ports = devices[d]['tcp']+ for port in tcp_ports:+ jarvis.say('\tOpen TCP Port: ' + str(port), Fore.GREEN)+ jarvis.say('\t\tProtocol Name: ' + tcp_ports[port]['name'], Fore.GREEN)+ jarvis.say('\t\tProduct: ' + tcp_ports[port]['product'], Fore.GREEN)+ jarvis.say('\t\tVersion: ' + tcp_ports[port]['version'], Fore.GREEN)+ print('----------------------------\n')+++@require(network=True)+@require(native="nmap", platform=LINUX)+@plugin('scan_network')+def scan(jarvis, s):+ """+ Scans provided network for all connected devices+ Usage example: jarvis scan_network 172.16.1.10/24+ """+ nm_scan = nmap.PortScanner()+ jarvis.say('Please wait, this might take a while!')+ if not s:+ jarvis.say('You need to provide address as input!\n'+ ' For example: jarvis scan_network x.x.x.x/24', Fore.YELLOW)+ else:+ nm_scan.scan(s)
Noticed python-nmap default adds '-sV' as option. According to man
-sV: Probe open ports to determine service/version info
This takes ages and in line 49 you are dropping this information anyway. As a suggestion, overwrite this parameter for extremely faster scan times:
nm_scan.scan(s, arguments="")
comment created time in 3 days
PR opened sukeesh/Jarvis
Hello,
I created a plugin that uses nmap to scan a network address. It could be helpful for a quick check of what devices are active in your LAN. Also you can provide a specific address to be scanned - either private or public IPv4 one. Here are two examples of how the new Jarvis command works:
This image demonstrates scanning a particular address
This example shows how you can scan your local network for example
Future Work I am planning to add more functionalities that give greater flexibility. For example, scan for a specific port range, check if a particular host is up, etc. Also I will add more test cases.
pr created time in 3 days
push eventsukeesh/Jarvis
commit sha 6f6edb5a71d6c62a1bd4307bfab91e38a9bfa667
Creating the doc for the market plugin
commit sha c4c33c7e51d44d083156b1cb87e4203a707b0c7b
Create both plugins
commit sha b3e95ac50ee5e0048866c8bbd19476ee6d42b1df
Market Place: Load plugins in own directory
push time in 4 days
PR merged sukeesh/Jarvis
As discussed in the #801 the idea for a marketplace would be a nice addition to the Jarvis community. I've built two new plugins which allow the user to list features ("market find") and also to install new plugins from Github repositories ("market buy"). All the codes should be spotted in the Github Topics and follow the main Jarvis branch. All the documentation and proposal is written in the PLUGINS_MARKETPLACE.md.
An example of basket of plugin is found here. (it is also an template repo.) This is a plugin to read your LinkedIn feed, it needs the Chrome browser and your credentials.
If something isn't clear in the plugins or in the general idea, please let me know! I shall try to explain better.
PS: Of course, there is lots of room for improvement!! Like how to install the necessary requirements without using the "python installer .", etc.
pr closed time in 4 days
pull request commentsukeesh/Jarvis
Marketplace feature! Two new plugins "market find" and "market buy"!
Like the "Duplicated plugin workspace!" warning.
Sorry about that! This warning is completely unrelated to your changes ;). Did not notice, there are two workspace-plugins, since one wasn't loaded because of '@require(native='wmctrl')'
Also, could you explain it to me how would jarvis be able to load the plugins inside the folders on the "marketplace" folder?
Because it's added to the search-path:
diff --git a/jarviscli/Jarvis.py b/jarviscli/Jarvis.py
index dba47287..23f0eb13 100644
--- a/jarviscli/Jarvis.py
+++ b/jarviscli/Jarvis.py
@@ -52,7 +52,7 @@ class Jarvis(CmdInterpreter, object):
def __init__(self, first_reaction_text=first_reaction_text,
prompt=prompt, first_reaction=True,
- directories=["jarviscli/plugins", "custom"]):
+ directories=["jarviscli/plugins", "custom", "marketplace"]):
directories = self._rel_path_fix(directories)
if sys.platform == 'win32':
=> Then I'd say; let's merge! Thanks, again!
comment created time in 4 days
issue commentsukeesh/Jarvis
Thanks for reporting this issue ;).
comment created time in 4 days
issue commentseatgeek/fuzzywuzzy
Fuzzywuzzy 4x slower *with* python-Levenshtein installed
We have a benchmark script here: https://github.com/seatgeek/fuzzywuzzy/blob/master/benchmarks.py
I assume there is some way to have these get reported back somewhere, so would be good to get them to run in CI and see if the benchmarks still hold true. Its possible that using python-levenshtein is slower for some class of strings and not others.
comment created time in 5 days
pull request commentsukeesh/Jarvis
Marketplace feature! Two new plugins "market find" and "market buy"!
So, @pnhofmann , I tried to implement your codes and got all sort of weird things. Like the "Duplicated plugin workspace!" warning. And also my path were all messed up! It kept pointing to my home directory, like "/home/adriel_martins". So I think it is better that you implement this so I could learn from it!
My two ideas are very simple.
-
Delete all non .py files in the git clone process. In order to maintain a certain "hygiene" in the marketplace. No weird things whatsoever.
# Installing dependencies and removing unwanted files basket_files = [] for root, dirs, files in os.walk(plugin_dir): if '.git' in root: continue else: for f in files: if f == 'requirements.txt': os.system('cd ' + self.PATH_TO_JARVIS + ' && env/bin/pip install -U -r ' + str(Path(root) / f)) os.remove(plugin_dir / f) if '.py' not in f: os.remove(plugin_dir / f) else: basket_files.append(f) os.rmdir(plugin_dir / '.git')
-
Mantain a log of downloaded (and, in the future, removed baskets of plugins!)
# Adding log of baskets bought. path = 'jarviscli/data/marketplace_history.csv' with path.open('a') as csv_file: writer = csv.writer(csv_file) writer.writerow([s, str(datetime.datetime.now()), 'installed', basket_files])
Well, best regards! I'm execited to see the jarvis project grow! And if there is any more doubts you can contact me!
comment created time in 5 days
issue openedsukeesh/Jarvis
after inputting the dimensions of the matrix if you input something different from a number this error appears:
created time in 9 days
issue commentsukeesh/Jarvis
I think pypdf2 and further pyttsx might come handy.
comment created time in 9 days
push eventTalAter/annyang
commit sha 647f84220c3438c17e7268c3207499d3790eac23
Grammar improvement from commit 254db72 implemented more broadly
commit sha bbddbac42d0f5db56e22db52fc477e57dad3ef21
Update copyright year
push time in 13 days
issue commentsukeesh/Jarvis
Related to #424
dev-branch contains some improvements.
If you like, just really write done some example of common sentence you would like to use with Jarvis. Would be useful for testing ;).
comment created time in 14 days
issue openedthundercomb/poetrydb
Cannot find proper information related to endpoints for different REST operations
Hi,
Came across this. Amazing job. Great going.
Can you please share how to use this API with little more information for GET, POST, PUT methods?
Thanks in advance.
created time in 15 days
issue commentsukeesh/Jarvis
Hi! Can you give an example what you mean with "basic common commands"?
like when i tested it out, i used the common sentences that we use daily so in that sense
comment created time in 15 days
issue closedsukeesh/Jarvis
Most of the basic common commands are not defined in the program
closed time in 15 days
Alenjojoissue commentsukeesh/Jarvis
Maybe he is referring to https://github.com/Alenjojo/Friday 😉
comment created time in 15 days
pull request commentsukeesh/Jarvis
Marketplace feature! Two new plugins "market find" and "market buy"!
Oh, I'm Sorry - totally missed your post! Thanks anyway and even if it's a bit late, of course you too a happy new year ;).
Sure, happy to hear you have some more in mind ;). Yeah, I think the straightforward way is, I'll just keep this PR open a bit longer - yes, just commit into the marketplace branch.
(And of course feel free to copy-paste + adapt my 10 code lines from above)
comment created time in 15 days
issue commentsukeesh/Jarvis
Hi! Can you give an example what you mean with "basic common commands"?
comment created time in 16 days
issue commentsukeesh/Jarvis
i am getting this error while opening bat file
Thanks for reporting this issue! And Sorry for long delay.
In any case, this is interesting... Maybe a version miss-match between nltk and the data? I'll think try to think of something...
comment created time in 16 days