From efe23926407aaeac43cbede9a81aed6ecd00449f Mon Sep 17 00:00:00 2001 From: Abdusalam-mah <54431757+TheMambaDev@users.noreply.github.com> Date: Sat, 2 Apr 2022 13:42:02 +0300 Subject: [PATCH] Search Wikipedia from the terminal project --- .DS_Store | Bin 0 -> 6148 bytes projects/.DS_Store | Bin 18436 -> 18436 bytes projects/wikipedia_search/README.md | 27 +++++++++++++++ projects/wikipedia_search/wiki.py | 51 ++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 .DS_Store create mode 100644 projects/wikipedia_search/README.md create mode 100644 projects/wikipedia_search/wiki.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..67e52a82e21114a5a0fd60510a0c08d33764db45 GIT binary patch literal 6148 zcmeHK(QXn!6ur};T`)${nzWDmV&Vg70JV*2Oeh5tl3E+L>Vq1}vc#^!4#FZTVtDZ% z)Iac3`~pA3572XGMui1q`eIBom&}|yJNMjW&+N?X5RoVkf&x*Nh#VBgR0h=o<9;r4 zwq&j_PpBMqx=XjIPJ2LWRspNP|E>Vf-BmSTD^$hI{XKsVs6zMAb3~iep`g~5O}{OD z#PedYgL3t|GI&@#C?H8q>L=npC*oFUpK8cjr33P)IvXw46VYizNs6gOK2Xy0WPb5J z!EmTcJw!eOrwL}_|A=pYi}#29u6fQcezzU=<9z<BSXxe<JHO&M87Ffw^Ta!mLoaT` zgMPWud&I57MttHM|47RAFTdeG2wTH?_VS*L;zk&?dWswdErdLN7)F5{mgOJ{`YMm7 zI~*tNr0dy@(WrQ{m~)HQ3*($S+TPCR+#A=n#^bcJex-1$cHDXWX7qOa?js%wCa?%A zyJYYue1bD4%uBBqwPo}aeauVKJq*e&2K^3j(U9{{ewZ5a)fq+|FG>~MLk#e)@)zac z*Je7$8V0LHFK9ra@;YcmJZ#9ZkKZQzR}?RJO{TLTskPH9U|tvJ!s)4&VHL0noN)zs zeQ;42O9m$z)zX1V9RYwTTvi63KM$DW8Y~%{XhaW8Xev-sg*jpfO~-ZD#FY$AG-^5t zbNCSE&cd8fgt|NOyDFSSNu#Z;0#<=p1(tO)%lm)z&*%SHl5JT9tO93B0g<YBl`<a5 z?5%ST$9t`da*V>paTAS-g34^i%Hgee14SA7Ty}sZgA<Lo0<#|iN(Nh51^%f5KLFlu B!O8#t literal 0 HcmV?d00001 diff --git a/projects/.DS_Store b/projects/.DS_Store index cc9466266d9067d053c8ebf5e10816a740b6882d..2fb8c5c6f18b50c2cbd8a7d8664379ddb928d736 100644 GIT binary patch delta 2312 zcmcgt&u<%55T0Gfc78O(PH~(fpzESGP3tJmFPTuaqQz}ei8fJ9Q~?cJ|B7Sm^}4nb zH$t=r3O69=A<-K`8~}+!r4^EaOC@@#Dp8Oqe*j!7l?o&zKn>qKZ&L4;asyjlzuld0 z=9`)C&AYU&Tv}Jw=R)rjQ3p|gs7^W=l*4~Y1l5m4EYaar`K{O&)hE1Iby1QERECXC zrzu6NlsjHBGwG6<##^{hQ$+r~8}dUWu0_+<8-pI7<?rn192tR4H$0SqEW(FIGgu*_ z%g0UjA=cuH7sIeNsl;)pikKxkdP?5q=p3!ULmf{|c&$18cn-F6LF^syR)Kv+@=pU> z!k6>asYc82VPf5ilxJpV+|=j*TwdNx4=%S$mpK?0CAB<UC9ukDkz%TAPGa;Kdl5I{ ziAlR66-3QZ7T|xZh!SoOE6ykfL~r1)(O$4-zRa}@?s<etA;V>NK;=!wTlWHAC{OfD z$a!3K{7hU8T&r+}rixegg}uK@<4^nNJUe!x%LQ7(Pp5`VFbm@b)kJVI<j>+sjVj{8 z@Zh7e@$HofP(%C?dUBUDb!8D5|I{kr#s=25nYb5Q4^EFqweiWZ*Q45N@pvq%O^FZ3 z;vU;#pp+j=W=x|3(B{W}^_XEM61E0AzklZLmy3UXa~L-FUuXa2^+09$VUD-0CadL= zS<b_mV*M6+R~_x9mymS@^*Dl}t;k|lojIzkU%M1mP~D@(r-ARG!w?&*!GQ2HSev*O zolw@7Z+25(Vw?7Mt_!#oNP{JQ1V8fu4AgWVgGha_OTj)1oKEvJN5}D>k>Y4j$r+KQ z<(n1nXvwihfGfx?!CRb_T%$ExVulL^K>_un_VQ3zvRVNm19S_QMtt5{?4f{svC%|i zYQU#JT7d0|91REPIjPk;V9Qvs@^e%cSCl~?YYAp&BOkojgV(&lnZF572JXs~b+X}t zJ1XF}oz^K0RNZOKV*%c8M{e%#0SWe6u^XwQQYI}p?PX7z)|Fjfs}p?^z{%E8Ufv01 zP~-W-bJL{*-sZlhb$0hH<zhd~dC=s*jI-hT6i{P^FX4_yl52d)&NMf*fWCIg$+84{ zofc$JcQ3gs?TB89$WuWa8v1COIq*&|0?)ghwaCTS!Gm>`2PfAkmJMrKKMXyko{j)= z9;IRzoPr_6aZa|mHApgWyJ|Z}ldx(%ZvZ3P=PayjbJMy#+^2fHG$X!?guUF!rub$5 z!S`0@m8f_tdi2EOP{slpqtPkpr${3ZHP1Po)FT+cEW8@NtugkHQ$@DDX<dz8SJ90V ztVvlzK2%s!c|1ws%17HA+I-4MR!;t{gALsX(Mj0WA%Rv+HIS^?9yEFZ)VQmB%sn6r zoVGaME{rC{c4gM;i~X$5bR(q%9Yc~_G7bFZX~M}s9s=zQg0NxkJpQY)1crE3+1bm( ze#_3fGk#aa)=ts{5<3PnKJi#U6|77^U7Lwp?%!+On)+N3pA66c?`?nH@<01~hw3>b TzExt@SFxx6!{UfL<HLUg7Y9LA delta 273 zcmZpfz}PZ@ae}{S9s>gd3j>1y14AxD5<@CO5kovf`eZ?-#gh$OSXh}rvXiY$yct<1 zzYw&Ze8^0BvVp1BW<jQJtP>k}H?woFa4<?uRucNVIZ}8P<7RhJ7iJ(o&{A}>gLE0w z<lXuKn-!RzvjT}gMn;RtP71w~?G-&HA65*QoTy|q`L<He<kQMWHXl{lz_fX@`YFcA zpEXx)eyAnEv^iRrg=uo9zR_f1#+b?c22Pt-8th}5{MFb4Xs8vV)aE9WXH1*#nZIM& m%wfHdak7Iz=;Ufa%gut?FBtLaHQUVY@SSDyE6Yd78ub8P!&`0u diff --git a/projects/wikipedia_search/README.md b/projects/wikipedia_search/README.md new file mode 100644 index 000000000..5295f5bbd --- /dev/null +++ b/projects/wikipedia_search/README.md @@ -0,0 +1,27 @@ +# Terminal Wikipedia +<!--Remove the below lines and add yours --> +Search the terminal for Wikipedia short descriptions of the topics you are interested in. + +### Prerequisites +<!--Remove the below lines and add yours --> +Modules required to be able to use the script + +```` +pip install colorama +pip install requests +pip install beautifulsoup4 +```` + +### How to run the script +<!--Remove the below lines and add yours --> +Steps on how to run the script along with suitable examples. +```` +python wiki.py [topic] +```` +or just execute the script and you'll be prompted to enter the topic. + +### Author +# +<!--Remove the below lines and add yours --> +* Github - https://github.com/TheMambaDev <br> +* Twitter - https://twitter.com/TheMambaDev diff --git a/projects/wikipedia_search/wiki.py b/projects/wikipedia_search/wiki.py new file mode 100644 index 000000000..e6c8ec8c1 --- /dev/null +++ b/projects/wikipedia_search/wiki.py @@ -0,0 +1,51 @@ +import sys +from bs4 import BeautifulSoup +from numpy import full +import requests +from colorama import Fore + +keyword = sys.argv[1:] + +if keyword == []: + keyword = input("Please enter a keyword: ") +else: + keyword = "_".join(keyword) + +print("Searching for:", keyword + "\n") + +req = requests.get("https://en.wikipedia.org/api/rest_v1/page/html/" + keyword) + +wiki = BeautifulSoup(req.text, "html.parser").find_all("p") +link = BeautifulSoup(req.text, "html.parser").find("a")["href"] +full_text = [] + +# get the first 10 paragraphs +for i, p in enumerate(wiki): + if i == 10: + break + + if p.text == "": + continue + + full_text.append(p.text + "\n") + +# if there is no text, alert the user about insufficient data +if len(full_text) < 2: + print(Fore.YELLOW + "No info found for this keyword.\n") + exit() + +# highlight the first paragraph +full_text[0] = Fore.GREEN + full_text[0] + Fore.RESET + +# add link to the end of the text +full_text[-1] = ( + "for more information please visit: " + + Fore.CYAN + + "https://en.wikipedia.org/wiki/" + + link[2:] + + Fore.RESET +) + +print("\n".join(full_text)) + +