From 3b8ae0aec7afeb84a2ebcfb2b447b07801349827 Mon Sep 17 00:00:00 2001 From: Nandeesh Date: Thu, 4 Jan 2024 16:05:15 +0530 Subject: [PATCH] added --- mypro/db.sqlite3 | Bin 0 -> 131072 bytes mypro/manage.py | 22 +++ mypro/myapp/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 151 bytes mypro/myapp/__pycache__/admin.cpython-310.pyc | Bin 0 -> 266 bytes mypro/myapp/__pycache__/apps.cpython-310.pyc | Bin 0 -> 428 bytes .../myapp/__pycache__/models.cpython-310.pyc | Bin 0 -> 1448 bytes mypro/myapp/__pycache__/tests.cpython-310.pyc | Bin 0 -> 1662 bytes mypro/myapp/__pycache__/urls.cpython-310.pyc | Bin 0 -> 487 bytes mypro/myapp/__pycache__/views.cpython-310.pyc | Bin 0 -> 2116 bytes mypro/myapp/admin.py | 6 + mypro/myapp/apps.py | 6 + mypro/myapp/blue_page.png | Bin 0 -> 65086 bytes mypro/myapp/convert.py | 82 +++++++++++ mypro/myapp/input.html | 10 ++ mypro/myapp/migrations/0001_initial.py | 32 +++++ mypro/myapp/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-310.pyc | Bin 0 -> 1020 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 162 bytes mypro/myapp/models.py | 27 ++++ mypro/myapp/output.pdf | Bin 0 -> 5439 bytes mypro/myapp/output.svg | Bin 0 -> 12167 bytes .../myapp/static/myapp/images/background.png | 0 mypro/myapp/static/myapp/style.css | 7 + mypro/myapp/temp_img.png | Bin 0 -> 65086 bytes mypro/myapp/templates/detail.html | 12 ++ mypro/myapp/templates/myapp/index.html | 13 ++ mypro/myapp/templates/myapp/results.html | 9 ++ mypro/myapp/tests.py | 129 +++++++++++++++++ mypro/myapp/text.py | 83 +++++++++++ mypro/myapp/urls.py | 20 +++ mypro/myapp/views.py | 73 ++++++++++ mypro/mypro/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 151 bytes .../__pycache__/settings.cpython-310.pyc | Bin 0 -> 2357 bytes mypro/mypro/__pycache__/urls.cpython-310.pyc | Bin 0 -> 992 bytes mypro/mypro/__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 550 bytes mypro/mypro/asgi.py | 16 +++ mypro/mypro/settings.py | 130 ++++++++++++++++++ mypro/mypro/urls.py | 23 ++++ mypro/mypro/wsgi.py | 16 +++ sourcecode/demosonar.py | 112 +++++---------- 42 files changed, 747 insertions(+), 81 deletions(-) create mode 100644 mypro/db.sqlite3 create mode 100755 mypro/manage.py create mode 100644 mypro/myapp/__init__.py create mode 100644 mypro/myapp/__pycache__/__init__.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/admin.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/apps.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/models.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/tests.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/urls.cpython-310.pyc create mode 100644 mypro/myapp/__pycache__/views.cpython-310.pyc create mode 100644 mypro/myapp/admin.py create mode 100644 mypro/myapp/apps.py create mode 100644 mypro/myapp/blue_page.png create mode 100644 mypro/myapp/convert.py create mode 100644 mypro/myapp/input.html create mode 100644 mypro/myapp/migrations/0001_initial.py create mode 100644 mypro/myapp/migrations/__init__.py create mode 100644 mypro/myapp/migrations/__pycache__/0001_initial.cpython-310.pyc create mode 100644 mypro/myapp/migrations/__pycache__/__init__.cpython-310.pyc create mode 100644 mypro/myapp/models.py create mode 100644 mypro/myapp/output.pdf create mode 100644 mypro/myapp/output.svg create mode 100644 mypro/myapp/static/myapp/images/background.png create mode 100644 mypro/myapp/static/myapp/style.css create mode 100644 mypro/myapp/temp_img.png create mode 100644 mypro/myapp/templates/detail.html create mode 100644 mypro/myapp/templates/myapp/index.html create mode 100644 mypro/myapp/templates/myapp/results.html create mode 100644 mypro/myapp/tests.py create mode 100644 mypro/myapp/text.py create mode 100644 mypro/myapp/urls.py create mode 100644 mypro/myapp/views.py create mode 100644 mypro/mypro/__init__.py create mode 100644 mypro/mypro/__pycache__/__init__.cpython-310.pyc create mode 100644 mypro/mypro/__pycache__/settings.cpython-310.pyc create mode 100644 mypro/mypro/__pycache__/urls.cpython-310.pyc create mode 100644 mypro/mypro/__pycache__/wsgi.cpython-310.pyc create mode 100644 mypro/mypro/asgi.py create mode 100644 mypro/mypro/settings.py create mode 100644 mypro/mypro/urls.py create mode 100644 mypro/mypro/wsgi.py diff --git a/mypro/db.sqlite3 b/mypro/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..02b3fc9cfc0bba7003445e8f877ebf875a0f858a GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/mypro/manage.py b/mypro/manage.py new file mode 100755 index 0000000..9c9c323 --- /dev/null +++ b/mypro/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mypro.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/mypro/myapp/__init__.py b/mypro/myapp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mypro/myapp/__pycache__/__init__.cpython-310.pyc b/mypro/myapp/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..103587e48e36a0961653b1805ec92ec1137278b5 GIT binary patch literal 151 zcmd1j<>g`kf@lIYq;;_lh RPbtkwwF8-1%mgG@7yw;XBLM&a literal 0 HcmV?d00001 diff --git a/mypro/myapp/__pycache__/admin.cpython-310.pyc b/mypro/myapp/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..25186c2db6ff9a97dbfe990a1f2c9636f3c7bc1a GIT binary patch literal 266 zcmYjLF-`+95L}<{P6tX5&)_5!mox}bP$MC_H0WSgiNo1z*-jDh87TRZTdMp3QL&da z8EI!VqtWj0e0~lBy#B=x**}vwg%)uyldgmiP>tZ!QYpX+^;kK*)Cx##>d%Js*W}mF z&^LQYL$69RptF9jj;edwQp%S7W8anw+zfuji#PT;+Sgb~rnHWc#uV#G)X8QlU8I#w znc_FZGqDf!cVpJ<$oRn{QCgb^O7EG2L2~?ZylmVqL>3-GFozzCuq)lIyx5L(H+4#_ K&kA(76uDzQvSG$lVD60HAU=wJk$Dl=8V%<*svtdal}XB^3$C z`9>iQy-#SuCN}VMDi+pgQK<^Gb_;Q(-P6j}0=2Pn`y64qy0L^bT#&o0?ix-CVPo!q qAc2@AY*U-1+z)o&2;3$LqXPSX=r$Tq%_nEu*Pn-7xga=%G5-a@RcRFf literal 0 HcmV?d00001 diff --git a/mypro/myapp/__pycache__/models.cpython-310.pyc b/mypro/myapp/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fc23869e71b902cd5418a7c6d59bc8732f8b2c49 GIT binary patch literal 1448 zcmZ`(%We}f6t(A(%uFYxR8Y!8ycS5=BoZqY6#}IcAw&cUtJzpX>^4c~k=hO=QCY#Z z|IqH}o{!)gyk*rj8^nrxJ!uJ|Of)BVu07Ys=N?blXha0AFJFK1`z|5h@nP}u;Nc0} z>NNl-oMt4a38ff2nUgs1?`Cf9B_1Wu3HP}FnQ&jwk^jj}YLKb%I%MkeOq~Zj{7jO7 zJ3Z2jPN6DkQd7%IE;7}HFwnzX%*sOaacuDdeifI85D1b`P7+7BBac(=9MZ%W?oo}q z$26%|JYW^OdJ^&gRtrt=W+Idxmc{8eC~-nfl&2q9CW;+Bm@V^Ei@W2=yKJZig7@jd z+8E>Af%``d;DC%s4=Nzz#@@Ut)8d1Ms-6IMMP z)bz+XCi+~bb+YRNb+>zpI|BY5Pp7Ksn*jFCPy~re8@DL;O@PnX5fdUplXNPVVAyW1 zf@Pe&wx23?E*_JjFAAMaQ38eBZ_wGDbM6<7u`97rn zy3WtR2Ba6gC%|>18mEU&Qilk9&0X+f2yuiigm`K0!g%h&T4zuW`vQ~?%YuQV0wl+_ zNu(p^U8!@iolY|SPlL~VC7FY3w6@b}tMd8du-DX2x$3gUr zyoq2%j3C=t(Z{h5F049D>Xt5)zt{DG)sfDU~aFP7C z;T7aEmw$!E_;V!Y|JpM$LHVtzTM%e+M32cwdO)=^a;w9?j#l?P;*wojUOAwHV%6ueMWOstLtdls`}JE?Rkl)NUa!m3AvRXP1?cB;%_wIkATSe-Rs ztTE#QX}TlON}4oxcDd5qf#Pjk=qTYsk@688pT5uFI1*_Wug^9E7F*EODhN(Glo4== zG6PJQ%mfowzA}0JRxlo;A=O32lV-vM!`z0h9)r;2gq{*@?3<|Rn68sUs;vXc%wu|J z9FPbR@~bY z()%)wOL_fJz#csFS)ln;SERfs^>hf=GkDB5rzfL3;35o%UH(VobT2 zihk~(J_Izcp#%hUAZB|}%VM0nK7<;?<%wJavqii!;wJ8)KQ45I z9CCOJy+NF}`_M$$B- z14CX_yem?sWDQn3ZP~yxQ{I32TuOr(sazeUI%?ee%Ffp%GQ2H;JBMfTv90Zh; z9g0k!#Ci G>wf@PHofTp literal 0 HcmV?d00001 diff --git a/mypro/myapp/__pycache__/urls.cpython-310.pyc b/mypro/myapp/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0c35df9ddb4adb3f094188c6829c71048a2863af GIT binary patch literal 487 zcmYk2y-ve06ou{l|Fu9Fc!nh# zoz!8Ny3Ag?uihJ?9`#>rAOR46AmNcjK!Sn9N0I;u>Bw{|CynU%9!*d7;D)AHJ0e%b z9v>QaTe2sq-MY_(&`7&wL)o+Ws>y4%3+H8{uEb_Rv`3lB%W8M_hgv4PN=c&qW3{^& z-aU3qs**QZNf%_x6(ia)kK1XiW4g|p6`yr&C0n>0)Oto75FJ2-%-HJi#-w|3fVC8rw$-4V6Gvg$- z+*8W2|A0es?2TW+kC-c5a^^%Y@O`s(5)~@3tNHeO?YG~1i$0;K5nij96OIa&wS-hSuXYHs>$)|*eyzzwahG-2|PMv5K zI179cIE%np1I`+7ntTa3OEb<5-r~zoNVLw|4@r0B0%9RuYMf8*24!v4U1d})4onU5Im8fd_mDLGr>0_p>$H@#=m=5 zBz=KjNsAuX2CRawqD?@hI1*B!ymBCNA(K9!fle|pDRR+AN3UNDh#ffUH2{J{l#_^Y z8abRrE_b*KL3-SSAbnH)9AY{7E)mC*W;X5(hnop9HV$=`ns(aL;9~sK%+WYaljx#!RaPwAP***Q4CouAn{fls=-&!}k(M|&{`<8hp7F{$33 z(-$7t==!n>4^t_VtBk*&fSQzx$aV7K*aU@yG{t*kFy<7r7QEmyLs3@^$!E}TCD00D8SOG9S4|F7u6fr3*gHscNy-RCY;z%#XbLidsstNwhc%mcR^TlSY1 zxCLIkSYR;7b|p%>o-LbP0bH&kz*av{s4X8w3A3JY;;cmrn?SxGL(L~cJh1p_{ z*(98@0UJ0|GH^M}7f#$`=X;W`xI}x}A5`|)_!cF2>tG5~IAz@B-Y@Lb@yQP`kH=){ zxMWb}{x)GGu1=k^+Bs_1b;v7Vy|GVu@RXfW$U}7(_6{39GJfAKEcp)jGg%)OqYh7a zt~)S^u;4nqPASJFH{Ttm0Rs$cG80Pm4ur&xo-}MKKbWNwjJrK~pt=hZ*Fah2T4^eV zsWc7@pmD$c>fyI0_(F{Dqd|$kCKKK(gxW3i{S(+w5_4v}qXL!}Y=<5!&kEXWAe$w; z>*7kaj+y%0zc}IYJycjMgAhEP1$k9EteSDr?uURWZ2FKfdV{v;DrJ8!xB+du@_k_M zc3&~R9uJfJKw>pbwcI@$d`~(^H)pguETry_w6adyxJ`W~JA^-g#NH^~$1W(NU7RV* zSBtEpC`7yScSkZ+Wx(M~*={6`LVy6kc6~p?~u;#*3DL>RSDgH0L2daPXGV_ literal 0 HcmV?d00001 diff --git a/mypro/myapp/admin.py b/mypro/myapp/admin.py new file mode 100644 index 0000000..62d6b4f --- /dev/null +++ b/mypro/myapp/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin + +# Register your models here. +from .models import Question + +admin.site.register(Question) diff --git a/mypro/myapp/apps.py b/mypro/myapp/apps.py new file mode 100644 index 0000000..c34fb20 --- /dev/null +++ b/mypro/myapp/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MyappConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'myapp' diff --git a/mypro/myapp/blue_page.png b/mypro/myapp/blue_page.png new file mode 100644 index 0000000000000000000000000000000000000000..747e23e695191fdebd521538ca897632152b1ab3 GIT binary patch literal 65086 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

t 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", html_file_path) + pdfkit.from_file(html_file_path, output_file_path, options=options) + print(f'PDF successfully created at: {output_file_path}') + except FileNotFoundError as e: + print(f'HTML file not found: {html_file_path}') + except Exception as e: + print(f'Error converting HTML to PDF: {e}') + + elif(type == "svg"): + #write a code to convert html to svg + # try: + # with open(html_file_path, 'rb') as html_file: + # svg_data = cairosvg.svg2svg(file_obj=html_file) + + # with open(output_file_path, 'wb') as svg_file: + # svg_file.write(svg_data) + + # print(f'SVG successfully created at: {output_file_path}') + # except FileNotFoundError as e: + # print(f'HTML file not found: {html_file_path}') + # except Exception as e: + # print(f'Error converting HTML to SVG: {e}') + #Assuming hti.screenshot captures HTML content and saves it to an image + #hti.screenshot(html_file=html_file_path, save_as='temp_img.svg') + + # Convert the temporary image to SVG using cairosvg + # cairosvg.svg2svg(url='temp_img.png', write_to=output_file_path) + # try: + # cairosvg.svg2svg(url=html_file_path, write_to=output_file_path) + # except Exception as e: + # print(f"Error converting image to SVG: {e}") + from weasyprint import HTML + HTML(filename=html_file_path).write_pdf(output_pdf_file_path) + from cairosvg import svg2svg + + # Convert PDF to SVG using cairosvg + svg2svg(url=output_pdf_file_path, write_to=output_file_path) + + + + + + elif(type == "img"): + #write a code to convert html to img + hti.screenshot(html_file=html_file_path,save_as='blue_page.png') + + +if __name__ == "__main__": + type = "svg" + # Input HTML file path + html_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/input.html" + output_pdf_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.pdf" + + # Output PDF file path + output_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.svg" + + convert_html_file_to_pdf(html_file_path, output_file_path, type, output_pdf_file_path) + diff --git a/mypro/myapp/input.html b/mypro/myapp/input.html new file mode 100644 index 0000000..1c3f3dd --- /dev/null +++ b/mypro/myapp/input.html @@ -0,0 +1,10 @@ + + + + Sample HTML + + +

Hello, World!

+

This is a sample HTML file.

+ + diff --git a/mypro/myapp/migrations/0001_initial.py b/mypro/myapp/migrations/0001_initial.py new file mode 100644 index 0000000..43e35b6 --- /dev/null +++ b/mypro/myapp/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# Generated by Django 4.2.5 on 2023-09-06 06:02 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question_text', models.CharField(max_length=200)), + ('pub_date', models.DateTimeField(verbose_name='date published')), + ], + ), + migrations.CreateModel( + name='Choice', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('choice_text', models.CharField(max_length=200)), + ('votes', models.IntegerField(default=0)), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='myapp.question')), + ], + ), + ] diff --git a/mypro/myapp/migrations/__init__.py b/mypro/myapp/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mypro/myapp/migrations/__pycache__/0001_initial.cpython-310.pyc b/mypro/myapp/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..323646fe0eb6309baa26e38f97346a10d809bbf2 GIT binary patch literal 1020 zcmZuw&2G~`5caM&iIX_#52e73141%~q#ThDYDp-nP%EKw@@3^_rjA|z)pn|;SGeXq z;7xdjy>jXkfDly7+6gTZYwdWyvF4kZZ`NtA*D+{`?H}+$7{)gZ?k@5fyR?e|88CoF zM$B9mbC)xXd1SictpO&8PX-8NVdJCeHh>=+PUD(l42P>u9Qe6c25C~LW}E^>#nD86 zySussc4-%%$)MpfFkBAIHGRVs*a(}z!NgW*0i#Di1DXqQ%ArNRHdxSJFhU(d9q59s zk#9n8!K>K*e`DAFiCrhug$>xOnC=m>u^0BkR=5_f!xr3MaN-o2)93C6Y*UX9RQqt% z+y`a7pJAcuQ zAmK;TG?<|3PO5iBtQr?-iABz8{ubb=H;YPTtZ!Cw zd&i@_@f+1iGhE)tFGlWA&dU5e7*5j|hlxiOVlf?#u{bN!YzP>qvZfry^DIxvk}kvB zi#^=g*?BIPT@JE&uK%1C?cymJ%MhF%!Pyq?vp(a$#f`95=pp03#Etd6igB8%U1u7= uNhMIN$)mr{LH!F2R&C`^bp1NtZ722V8Tpj;vYyE+J>{ZFW}RDX+x!Ez8z+4L literal 0 HcmV?d00001 diff --git a/mypro/myapp/migrations/__pycache__/__init__.cpython-310.pyc b/mypro/myapp/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d57a20af0a1d2e250929b00a5524fa6ecd0257a GIT binary patch literal 162 zcmd1j<>g`kf@0~ue;1SD7(04!!FcmMzZ literal 0 HcmV?d00001 diff --git a/mypro/myapp/models.py b/mypro/myapp/models.py new file mode 100644 index 0000000..75521f9 --- /dev/null +++ b/mypro/myapp/models.py @@ -0,0 +1,27 @@ +from django.db import models +import datetime +from django.utils import timezone + +# Create your models here. +class Question(models.Model): + question_text = models.CharField(max_length=200) + pub_date = models.DateTimeField("date published") + + def __str__(self): + return self.question_text + + def was_published_recently(self): + return self.pub_date >= timezone.now() - datetime.timedelta(days=1) + +class Choice(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE) + choice_text = models.CharField(max_length=200) + votes = models.IntegerField(default=0) + + def __str__(self) : + return self.choice_text + + +def was_published_recently(self): + now = timezone.now() + return now - datetime.timedelta(days=1) <= self.pub_date <= now \ No newline at end of file diff --git a/mypro/myapp/output.pdf b/mypro/myapp/output.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e09ab3a26b3d36216842b3c8c85e5eae12b6951 GIT binary patch literal 5439 zcma)AXEYq#*48Bmg3){QI=YGIJ$e~K^fG!2qceIZN)VzYdP|V#y$zz*(IO%U(K~}= zzT9=cwQlZu-}SEhYwvZ=`Lmz1_VYY@v+F9U@Cyk@5U?K?W|a_#F$0-BY@7+6JP}lJ za)m*?m<3f_tzl3lsI7+`R8SM@?f`RS76M7g$PjqLyr9-@1pdolZ4H7xIil4`ZZFL8 zPj|F$Te#Zl1PrP5NU0iiA?6iV_#*j68Jg)5s17PD3e!{^-;$hHP|v9cyOp}H;QR1i z;|X!(`h~8t2JQNZk&mJ1%X(a4c`0JP>gT$M$}ZPjF=Om{$O6Ii=Z6f5S4*ApN}n9J z8hOij7CH*;pZ;i_e_(S~Yf#iQXewN+?JZ+=DfI@pXT0RCUQPZ!6@{)F1^pza1fBcN zY<|{g=3oqWJWV!7izsFsEi3ut9bk7jsC^=Uy4(GKJ-@SmAprUh692ARh*?+|B>a!C z2!q7_#HAA)|Pq5Y~tvT-PKL@CLpatghq z%D^6w#7I@~d8yu#V#%^l%3SQTZ+6&eKLKMy^QvQQR9zv}iE6p(CG@Tp59T)u;Ap~~ zi48(gxzyHKJj?xoV0%T;>0Q~1EUPZd!MK4c#TVo+=&yC;)&LJ02P^YBrlg}<+l46J zje}60GHK88K1h74&r;f@2Q$N!cGVBHmaa|wC#%x6$eC_mdTk0n>cT)Yi(aWU5v!}?lR)`;zR(_H%I@inNg@D%*icp$if(pY>V%vkPFlL$ zj$aR+RxwGO#u`Y(frqEvHKX|(;7 zl281zrCm|!ny*FR6bi8LsC!-SgD)5zyfJmQ0sGQDoR1ss_Cjv(X6ZlIXtlug4n(zb zxS^GpotR)-`VSF{-Hus)G3#F1ms_~7Ruybj#TS}=LeNj8)%7EuwgJkbW}m=reNAs3 z!PVJJIw_8frzRGz6|OzEhh7OD9es8<L9e`R<4Dvb7uc?k;TLX{^_e z0$2+|M)9l-%9oOB7&<+8ff#AEJ4BlE*FKioF5RIzX_p)&40y5zvX z`W!XzmSky^oVkGi#m497A{p@gd!bwsA!EkP>1zc^jg2SZSy3O4z2gb78hbt{W)797 z9r1y*i$7o|Gvwp~pru78E*fvC%(Q*h`6QExDg@e@q$?ewK=1Y~V6h~5I}ZLFY(`%G zriXvdsPBqme|9||3i3_j8w8{}mA`Wperm*Fai~GrbO3HpW^xC<`npEr%PgrmwAX%Z^{LX#O<{p@* z>0Ab!H^651v~@5L8}H3lC5Z_BS{3GLfC;?s+`Ev}_OOU+H#)bVNaZV4glRGA z0Z5`)HNu!McYA690~C`L5roGWan46N-xKq-^ov4UuLj!P-${uHzl;Fh-_vT%r1&|t zw0&Nu62P7$QHoJF5k8!u}RF?b)GO`xuZ zt%XHc$(^QRbNVxHK%GHmwUM0%mmvJKzR}en9!XlJUL0NtPUs0!8B!2?S8b$^oGo}tSZon}v%#)0l6V-n*hz9BGuLfgKeFY%9C}8MfedS_ZChFk z3>yB9aoiPla~K#}0nk)C=2u!ZTWe@N9O9fe!QeH(*t8U%yK%9xdi>nQZzUREqjBBy1QmjU61!V{ zmz4!?1db5(ZAhyMX*ezq@Kg#*cnd%x_8Derl$y{ z`BR0kikn#;t7T%YW;I3etQU*Yp!+xj=WII|X9achT5$aAVE|7MCItqfm|o$cJ^l+2 z!)Hc1J8RleHz|Sb(`Vo3Gkuvp8ZK5si^XG((|r5oW%lB6?4Y{^Oc`D@=B^5Vsrhko z*xp1h8gtOvQ3IKoITZtVcgqumz|X3sQ-pgL$)e_3-b-4yHc(}y90Un&zJ?3G=bdHo zb6pj^hZ!!%OnMIo>wgKUI0#O7Vqd7dUC%3AQ;t9yacfxs$GRHNA`4-{8=R3|lE$ff z<5L80xe|vk&s%Lm-ebO2+5Q&kXLBQac&t%ci@zfAwf`}sA9?={1v%}+F-dq6`;L;R z4uTsiSxUs3rp87Vuk_!cXu|6&+SpG(X822l=`nv;9_|uj^SHCnWBV}~$epgXlhcGE z;sK$C2G#eBEYB5jj1BEA^K87YCxJ5zUx=z7Nh=;nBZ=rod%F0^(ir2ZlRAf_kmK6_q=p4uC_r;!9*BR4jF(G}Q-#*4LkX>GrvY%Y^ z_xx_f8Z3L8Y?n2*UrOj;6Y}uEV=+=1CBaechn9zNaMp5Fa*#1F_Q`n;9xO5pjDDAPX^CkIQ;8R2 z#{${O-W;(Kxl{{ZZ~V8trIr=*Lsp+%UA1Ekt#$e2sN**^!ZfRD0>}Lh9`pXR>d&$o zV)W&?d_nun!oO;7cyCnPquN9Q=ywR1+PDF}k1oVIG{+e~IS%`3j=?CAZJ!wT!DI7A z(BjM8#~=72vNC>(bT&;Sve22r1QIG#}?+iPW1Qv{D+TM zIyrS54FVdcstrqtzVUy=($sEqcu8&{G!`8UF@hJ2W}=&I>vKDIOr1t~xQ4y9wv@Lk zs^0STd>mDlg=VjsV|*Mm`fzAlPdAkEQ3bq3v(pZIhv1Qp8_AzVlSHpcTk}kwGCF~l zSBurn!M(>w0e#Dc8{YBMm9$Nh?`0yZ^4&G8WC4mkf zbJ)AQvYWWA=<2NDL*t(@divm5-uc)UArr_a?eI9(HI?e@*+S^q685HFrkcAvFzt)I zRHM4ivMEgHKkNiG++2tyq@fsByesV43Jb4>g`V$%J$}J?zQBO;xM+K`!I!ad*YER2 ziDd7ywk7$|3jFxM;$)_s4#+?kjjGi3Ql*l}J4TNm<$ObVH${{q*+%qiN`|nMeJZL!aVfhtb;`NE79mDg_fCG)kV{To znMB4og>v3;PgU@uZ{~&Ym4~Vz|6)_o_~Y}HIA32grhyi?&=pj+S}8;2E@MowniavpLbUt%LGTA zC5~COabQ^mFU2<>uPVt2aM~JfqanPTL%(jZiTB;l+t)+=$%2+NARUGwI-wO!Ux! z^>mARb1W&>iU#pd#aWrKX(3)wl_b#SLG{FkXaXMDE>z4qo$n9JK!-}5g>WCX^^v?{oqJL2 z(P*mwVh1{$#;ha{#xQTCUkv%Nwn>x$SgBu7Z+fdI1Eqd0}vNeKB#_05CJ1k z%_^UrMwZMz^t>swc;1k#Vh$bNveDeiThL+X6`Zw=v`aO7tHPY4Kra?fE6Z}Cz-dwe zDz4>*Q7)b(nLD4)?^KV}HCLW4f>wh#oC#SFdPcfl!}pExulP|22S``<3&(hwzd`kX zo3n*Ml7D&~^R!Xtejusx)eQmvta9C*Cc&WYOfpr7ZZngW#v_RCsDcsYuiK|0EYSq6 zl4G64)A{=|vR6o)g3enoF=>mqQNSXy`c)5Sb}}@eH#2Qr<@(j=jxptUe;2NCU^N8U z^yD@U!GE34R516r7kl(e2bRbF7>VU8mQzokLww4*a6+VyS@?@&3ze(K0zD!P3_*ZB zj{Tt>ltJ(zv442pEYJ&F*Qyu6bU;)CIDvJ{pTLM}ZXlB`AGDsqQ)E7k8e|aaLClMs z6`UuO(sv$Kx~FQhr*owd$d4psfVgqfSXsAzl+78wRB|Yyt$ee>+tyhk0Px`+hP>5r z-dz&C`f-}~9W(gyAcQ-tp**PVbT@>E@>P6%8DDbrZP)5ex6Nz}y72nT14u+f6TT7&A!dpM0l;BbH@o@fY%T;Ol(cD&>G%~u?$?r_G((J|DObOj$XB4+mw4jJvS?Fa!2L9X`ypgi6q;4I!{xiy z8yAi5Sm@6k!!;v(z?HnZ1+@=;4&{=i(AY_U!u{V{@YBMygGCzyMK zlUEy#TL4{H8c)~csfC8w(BeD!m4G^YLGkFEL|KxxXOO|3pHJiUB6H5~sPFFC&s9(> zyeNJ}h9x1VTx7dBKziTofdYkRwP2s*FBg9ppkwjDGw&}mG3xNNoPYwyJTt_Ebqp=| zXM2HfH;qY=CnczpU!)^)2QPr!VrX`H{&+LxqpVU^WOFXXWIB5Rr$&b+rJqa`(!l3u zXq99{lwSxxsh%E}?!9>GT4%D;Er~mvd#?rW^UGsBj$ra|7}|S#9aIG|-9a763w~Cp{rqG4Y)!pr&{>-Mp-}^LkK?t+y@5LJP@65m{5c>N_P~XD?#w_w%b@YF~wDdqr81$k!9+GxvAb z`rz|Ez~UT=!e#r9+4HWCyH3?4?tIemjQ?7VH_X}#=I;fyClC`B5+-10SJqJ>_&?xf BH>>~v literal 0 HcmV?d00001 diff --git a/mypro/myapp/output.svg b/mypro/myapp/output.svg new file mode 100644 index 0000000000000000000000000000000000000000..5ce6b35731986e5fc6138fedd87613c426245ac6 GIT binary patch literal 12167 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 ZGba}hCo2d*K;V(^`MG;Gc?|`?{{ba+l#>7e literal 0 HcmV?d00001 diff --git a/mypro/myapp/static/myapp/images/background.png b/mypro/myapp/static/myapp/images/background.png new file mode 100644 index 0000000..e69de29 diff --git a/mypro/myapp/static/myapp/style.css b/mypro/myapp/static/myapp/style.css new file mode 100644 index 0000000..8f5e81e --- /dev/null +++ b/mypro/myapp/static/myapp/style.css @@ -0,0 +1,7 @@ +li a { + color: green; +} + +body { + background: yellow url("images/background.png") no-repeat; +} \ No newline at end of file diff --git a/mypro/myapp/temp_img.png b/mypro/myapp/temp_img.png new file mode 100644 index 0000000000000000000000000000000000000000..747e23e695191fdebd521538ca897632152b1ab3 GIT binary patch literal 65086 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

t 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 + {% csrf_token %} +

+

{{ question.question_text }}

+ {% if error_message %}

{{ error_message }}

{% endif %} + {% for choice in question.choice_set.all %} + +
+ {% endfor %} +
+ + \ No newline at end of file diff --git a/mypro/myapp/templates/myapp/index.html b/mypro/myapp/templates/myapp/index.html new file mode 100644 index 0000000..50687e8 --- /dev/null +++ b/mypro/myapp/templates/myapp/index.html @@ -0,0 +1,13 @@ +{% if latest_question_list %} + +{% else %} +

No polls are available.

+{% endif %} + +{% load static %} + + \ No newline at end of file diff --git a/mypro/myapp/templates/myapp/results.html b/mypro/myapp/templates/myapp/results.html new file mode 100644 index 0000000..c76de33 --- /dev/null +++ b/mypro/myapp/templates/myapp/results.html @@ -0,0 +1,9 @@ +

{{ question.question_text }}

+ +
    +{% for choice in question.choice_set.all %} +
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • +{% endfor %} +
+ +Vote again? \ No newline at end of file diff --git a/mypro/myapp/tests.py b/mypro/myapp/tests.py new file mode 100644 index 0000000..d18399d --- /dev/null +++ b/mypro/myapp/tests.py @@ -0,0 +1,129 @@ +from django.test import TestCase + +# Create your tests here. +import datetime + +from django.urls import reverse +from django.utils import timezone + +from .models import Question + + +class QuestionModelTests(TestCase): + def test_was_published_recently_with_future_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is in the future. + """ + time = timezone.now() + datetime.timedelta(days=30) + future_question = Question(pub_date=time) + self.assertIs(future_question.was_published_recently(), False) + + +def test_was_published_recently_with_old_question(self): + """ + was_published_recently() returns False for questions whose pub_date + is older than 1 day. + """ + time = timezone.now() - datetime.timedelta(days=1, seconds=1) + old_question = Question(pub_date=time) + self.assertIs(old_question.was_published_recently(), False) + + +def test_was_published_recently_with_recent_question(self): + """ + was_published_recently() returns True for questions whose pub_date + is within the last day. + """ + time = timezone.now() - datetime.timedelta(hours=23, minutes=59, seconds=59) + recent_question = Question(pub_date=time) + self.assertIs(recent_question.was_published_recently(), True) + +def create_question(question_text, days): + """ + Create a question with the given `question_text` and published the + given number of `days` offset to now (negative for questions published + in the past, positive for questions that have yet to be published). + """ + time = timezone.now() + datetime.timedelta(days=days) + return Question.objects.create(question_text=question_text, pub_date=time) + + +class QuestionIndexViewTests(TestCase): + def test_no_questions(self): + """ + If no questions exist, an appropriate message is displayed. + """ + response = self.client.get(reverse("myapp:index")) + self.assertEqual(response.status_code, 200) + self.assertContains(response, "No polls are available.") + self.assertQuerySetEqual(response.context["latest_question_list"], []) + + def test_past_question(self): + """ + Questions with a pub_date in the past are displayed on the + index page. + """ + question = create_question(question_text="Past question.", days=-30) + response = self.client.get(reverse("myapp:index")) + self.assertQuerySetEqual( + response.context["latest_question_list"], + [question], + ) + + def test_future_question(self): + """ + Questions with a pub_date in the future aren't displayed on + the index page. + """ + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse("myapp:index")) + self.assertContains(response, "No polls are available.") + self.assertQuerySetEqual(response.context["latest_question_list"], []) + + def test_future_question_and_past_question(self): + """ + Even if both past and future questions exist, only past questions + are displayed. + """ + question = create_question(question_text="Past question.", days=-30) + create_question(question_text="Future question.", days=30) + response = self.client.get(reverse("myapp:index")) + self.assertQuerySetEqual( + response.context["latest_question_list"], + [question], + ) + + def test_two_past_questions(self): + """ + The questions index page may display multiple questions. + """ + question1 = create_question(question_text="Past question 1.", days=-30) + question2 = create_question(question_text="Past question 2.", days=-5) + response = self.client.get(reverse("myapp:index")) + self.assertQuerySetEqual( + response.context["latest_question_list"], + [question2, question1], + ) + + +class QuestionDetailViewTests(TestCase): + def test_future_question(self): + """ + The detail view of a question with a pub_date in the future + returns a 404 not found. + """ + future_question = create_question(question_text="Future question.", days=5) + url = reverse("polls:detail", args=(future_question.id,)) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_past_question(self): + """ + The detail view of a question with a pub_date in the past + displays the question's text. + """ + past_question = create_question(question_text="Past Question.", days=-5) + url = reverse("polls:detail", args=(past_question.id,)) + response = self.client.get(url) + self.assertContains(response, past_question.question_text) \ No newline at end of file diff --git a/mypro/myapp/text.py b/mypro/myapp/text.py new file mode 100644 index 0000000..c84c6be --- /dev/null +++ b/mypro/myapp/text.py @@ -0,0 +1,83 @@ +import pdfkit +import cairosvg +from html2image import Html2Image +hti = Html2Image() + +def convert_html_file_to_pdf(html_file_path, output_file_path, type, output_pdf_file_path): + """ + Convert HTML file to PDF. + + Args: + html_file_path (str): Path to the HTML file. + output_file_path (str): Path to save the output PDF file. + + """ + + if(type == "pdf"): + try: + options = { + 'page-size': 'A4', + 'margin-top': '0mm', + 'margin-right': '0mm', + 'margin-bottom': '0mm', + 'margin-left': '0mm', + } + print("html_file_path>>>>>>>>>>", html_file_path) + pdfkit.from_file(html_file_path, output_file_path, options=options) + print(f'PDF successfully created at: {output_file_path}') + except FileNotFoundError as e: + print(f'HTML file not found: {html_file_path}') + except Exception as e: + print(f'Error converting HTML to PDF: {e}') + + elif(type == "svg"): + #write a code to convert html to svg + # try: + # with open(html_file_path, 'rb') as html_file: + # svg_data = cairosvg.svg2svg(file_obj=html_file) + + # with open(output_file_path, 'wb') as svg_file: + # svg_file.write(svg_data) + + # print(f'SVG successfully created at: {output_file_path}') + # except FileNotFoundError as e: + # print(f'HTML file not found: {html_file_path}') + # except Exception as e: + # print(f'Error converting HTML to SVG: {e}') + #Assuming hti.screenshot captures HTML content and saves it to an image + #hti.screenshot(html_file=html_file_path, save_as='temp_img.svg') + + # Convert the temporary image to SVG using cairosvg + # cairosvg.svg2svg(url='temp_img.png', write_to=output_file_path) + # try: + # cairosvg.svg2svg(url=html_file_path, write_to=output_file_path) + # except Exception as e: + # print(f"Error converting image to SVG: {e}") + from weasyprint import HTML + HTML(filename=html_file_path).write_pdf(output_pdf_file_path) + from cairosvg import svg2svg + + # Convert PDF to SVG using cairosvg + svg2svg(url=output_pdf_file_path, write_to=output_file_path) + + + + + + elif(type == "img"): + #write a code to convert html to img + hti.screenshot(html_file=html_file_path,save_as='blue_page.png') + print("helloo") + + +if __name__ == "__main__": + type = "svg" + # Input HTML file path + html_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/input.html" + output_pdf_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.pdf" + + # Output PDF file path + output_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.svg" + + convert_html_file_to_pdf(html_file_path, output_file_path, type, output_pdf_file_path) + diff --git a/mypro/myapp/urls.py b/mypro/myapp/urls.py new file mode 100644 index 0000000..0934007 --- /dev/null +++ b/mypro/myapp/urls.py @@ -0,0 +1,20 @@ +from django.urls import path +from . import views + +app_name = "myapp" +urlpatterns=[ + #ex:/myapp/ind/ + # path("ind/",views.index,name="name"), + + # # ex: /myapp/5/ + # path("/detail/", views.detail, name="detail"), + # # ex: /myapp/5/results/ + # path("/results/", views.results, name="results"), + # # ex: /myapp/5/vote/ + # path("/vote/", views.vote, name="vote"), + + path("",views.IndexView.as_view(),name="index"), + path("/",views.DetailView.as_view(),name="detail"), + path("/results/",views.ResultView.as_view(),name="results"), + path("/vote/",views.vote,name="vote"), +] \ No newline at end of file diff --git a/mypro/myapp/views.py b/mypro/myapp/views.py new file mode 100644 index 0000000..3935270 --- /dev/null +++ b/mypro/myapp/views.py @@ -0,0 +1,73 @@ +from typing import Any +from django.db import models +from django.shortcuts import render,get_object_or_404 +from django.http import HttpResponse,HttpResponseRedirect +from .models import Question,Choice +from django.template import loader +from django.http import Http404 +from django.urls import reverse +from django.views import generic +from django.utils import timezone + + +# Create your views here. +# def index(request): +# latest_question_list=Question.objects.order_by("-pub_date")[:5] +# # template=loader.get_template("myapp/index.html") +# # output=",".join([q.question_text for q in latest_question_list]) +# context={"latest_question_list":latest_question_list} +# # return HttpResponse(template.render(context,request)) +# return render(request,"myapp/index.html",context) + +# def detail(request, question_id): +# # try: +# # question=Question.objects.get(pk=question_id) +# # except Question.DoesNotExist: +# # raise Http404("Question not found") + +# # # return HttpResponse("You're looking at question %s." % question_id) +# # return render(request,'myapp/detail.html',{"question":question}) +# question = get_object_or_404(Question, pk=question_id) +# return render(request, "myapp/detail.html", {"question": question}) + + +# def results(request, question_id): +# # response = "You're looking at the results of question %s." +# # return HttpResponse(response % question_id) +# question=get_object_or_404(Question,pk=question_id) +# return render(request,"myapp/results.html",{"question":question}) + + +class IndexView(generic.ListView): + template_name="myapp/index.html" + context_object_name="latest_question_list" + + def get_queryset(self): + return Question.objects.filter(pub_date__lte=timezone.now()).order_by("-pub_date")[:5] + +class DetailView(generic.DetailView): + model=Question + template_name="myapp/detail.html" + + def get_queryset(self): + return Question.objects.filter(pub_date__lte=timezone.now()) + +class ResultView(generic.DetailView): + model=Question + template_name="myapp/results.html" + +def vote(request, question_id): + + question=get_object_or_404(Question,pk=question_id) + try: + selected_choice=question.choice_set.get(pk=request.POST["choice"]) + except(KeyError,Choice.DoesNotExist): + return render(request,"myapp/detail.html",{"question":question,"error_message":"you didnt select a choice"}) + + else: + selected_choice.votes += 1 + selected_choice.save() + # Always return an HttpResponseRedirect after successfully dealing + # with POST data. This prevents data from being posted twice if a + # user hits the Back button. + return HttpResponseRedirect(reverse("myapp:results", args=(question.id,))) \ No newline at end of file diff --git a/mypro/mypro/__init__.py b/mypro/mypro/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mypro/mypro/__pycache__/__init__.cpython-310.pyc b/mypro/mypro/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f52c8efa3b6788235a12953054598d14b5a1977b GIT binary patch literal 151 zcmd1j<>g`k0u|oxDIoeWh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vCKO;XkRX;B= zFC{g#I78nhwK%&Zzd%1FH8(##B`Yy6Jzqb!vY-e?#>Z#oWtPOp>lIYq;;_lhPbtkw NwF8-1%mgG@7yvH)BDw$o literal 0 HcmV?d00001 diff --git a/mypro/mypro/__pycache__/settings.cpython-310.pyc b/mypro/mypro/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..54fe2768b668a203764706268d266f7a708ae246 GIT binary patch literal 2357 zcmb7FOK;mo5GG~Hk`+5~Z0FIW0T{GFs-&jc#C-)#8d{}|lff^M2u(TCSvOgL|p$y{yJ4`8+c5#3sn_(pPM)F;hX>8iaCxJ|v9kGezT{)(JAx|K; zln2TepuLkKh7p!Y0N}pONEpcQX9EJ}h=)G~>$o&vY)BtfDkyZQGPW`GzzO{d4k`dx zVd0QCv@&(KGKOaZEcav2lRZM29QIGQV+RNfVG_y5wijdie{4m#KV#?*NU~5CxwL1q zK`Yswgn%vmV~;a=<}_s$_1;Uj1y zmfWAnzAMo*p6@|U%=FXowm%2u|yapPtJ?fBmwbbzkvgn4NmpHJFot@mG&k+o&r2QFF-5y zaYUT62zeZA#*{B~jcQVW3j$iIGMffJMA)OsHgTcl!X1J=RKCs&mIX(@W%0rg4p@)$ zq8vn)=R(ShmX)4ADG!nsddHYA4&mqt7%y(Cx|Ws%FX>vfqZ!t7?FXK(Y1`dhzM?i7 z?R~9grHRt{#d=FOUuJ!DG`+#*N)JCAK5m0a~#^{ThBL zTULAl5(~t&n@SZD5?He1Sl8#CbMCb|JBtyFFBd=9oeo0Z+|TLg!p~!v#w`rZ5eryY z1|pn?f!lY=j)>-w=+3(V;t`8@xan>B`w;eB-etXgun$+^e8Bo|P%@yOLxkdYuV3O^ z$z`#sHMND3c&RiN+e#}8bHj6+#_`)V$2YYuD{3v*(%j&(Fcxc7TW&C57;F{(Q1Fi? z#a9kMX^smCSmJFj(s=<`|HH<` zr_^K)WRm>B=vwAw%?h~!6MQ}=&DHnl&$TxO0~IKbi{+C9FIy{T2fGgCNS)zFl5OnN zoAS?W7o}PeFz}dZ><&EcI7#B~(8eeUnl5FckV)7?&he(-M(=w5oa}mH3#O4>?7#l{ ztK?SG&oXG9ENgDJd_ktw#X>_{qh@#_Lc?o9I&#O6DJ*XyC#@Ntl=~~vLl@+hpZAHY zFOgI-&dr)ULNI9Y)$Q3z+l*TdZ$;QFID2ht^NYtK|N13W_X<$`m!( zB1>z}P}^JdG6LDA|Mf`q)zLSavfd3@94k5}qvPuz`N#QW%1U%AU9lB5%EmqjQnJPNzWv+s4fjWGOz{1wzAP($w>=}Etj&cjV@)-=$6Zb z_on5*2AFn<&UOWcE`e*$R@%Tr<^l3`2(^FCxx&&HY9n2R|236pIXM2bc*56s6_6{a z4el(sz^{CzdHyR6gUm)*yjMXG?VdQ05$})RzMf6a#r*8zVmh15#ryN|hj(Y!r(N%b zhY+-@{AdsdLL>n~M2bG%-ODJ-q`qiD8=7e10NhqL=whBODp<)&6XNXyzVD=IAF&I6 zo+Zr|xRXu+_%$Dc{~WMRJy;Zb0^Z5^7h9g9-o=v_`!T;vzkv7_uTM^H-Jz#6r+)#9 CzpB~* literal 0 HcmV?d00001 diff --git a/mypro/mypro/asgi.py b/mypro/mypro/asgi.py new file mode 100644 index 0000000..c5d2d01 --- /dev/null +++ b/mypro/mypro/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for mypro project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mypro.settings') + +application = get_asgi_application() diff --git a/mypro/mypro/settings.py b/mypro/mypro/settings.py new file mode 100644 index 0000000..eee0333 --- /dev/null +++ b/mypro/mypro/settings.py @@ -0,0 +1,130 @@ +""" +Django settings for mypro project. + +Generated by 'django-admin startproject' using Django 4.2.5. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.2/ref/settings/ +""" + +from pathlib import Path +import os + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-u-=vnp_qdmbwv$lz4mhu%94_gk%t3fq=i+!2fk#!ycc^gbxl0r' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'myapp.apps.MyappConfig', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles' + + +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mypro.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mypro.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'mydb', + 'USER':'postgres', + 'PASSWORD':'postgres', + 'HOST':'localhost' + } +} + + +# Password validation +# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.2/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/mypro/mypro/urls.py b/mypro/mypro/urls.py new file mode 100644 index 0000000..1df0faa --- /dev/null +++ b/mypro/mypro/urls.py @@ -0,0 +1,23 @@ +""" +URL configuration for mypro project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/4.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path,include + +urlpatterns = [ + path('admin/', admin.site.urls), + path("myapp/",include("myapp.urls")) +] diff --git a/mypro/mypro/wsgi.py b/mypro/mypro/wsgi.py new file mode 100644 index 0000000..32158f4 --- /dev/null +++ b/mypro/mypro/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mypro project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mypro.settings') + +application = get_wsgi_application() diff --git a/sourcecode/demosonar.py b/sourcecode/demosonar.py index 08fadd1..0b60351 100644 --- a/sourcecode/demosonar.py +++ b/sourcecode/demosonar.py @@ -1,81 +1,31 @@ -import pdfkit -import cairosvg -from html2image import Html2Image -hti = Html2Image() - -def convert_html_file_to_pdf(html_file_path, output_file_path, type, output_pdf_file_path): - """ - Convert HTML file to PDF. - - Args: - html_file_path (str): Path to the HTML file. - output_file_path (str): Path to save the output PDF file. - - """ - - if(type == "pdf"): - try: - options = { - 'page-size': 'A4', - 'margin-top': '0mm', - 'margin-right': '0mm', - 'margin-bottom': '0mm', - 'margin-left': '0mm', - } - print("html_file_path>>>>>>>>>>", html_file_path) - pdfkit.from_file(html_file_path, output_file_path, options=options) - print(f'PDF successfully created at: {output_file_path}') - except FileNotFoundError as e: - print(f'HTML file not found: {html_file_path}') - except Exception as e: - print(f'Error converting HTML to PDF: {e}') - - elif(type == "svg"): - #write a code to convert html to svg - # try: - # with open(html_file_path, 'rb') as html_file: - # svg_data = cairosvg.svg2svg(file_obj=html_file) - - # with open(output_file_path, 'wb') as svg_file: - # svg_file.write(svg_data) - - # print(f'SVG successfully created at: {output_file_path}') - # except FileNotFoundError as e: - # print(f'HTML file not found: {html_file_path}') - # except Exception as e: - # print(f'Error converting HTML to SVG: {e}') - #Assuming hti.screenshot captures HTML content and saves it to an image - #hti.screenshot(html_file=html_file_path, save_as='temp_img.svg') - - # Convert the temporary image to SVG using cairosvg - # cairosvg.svg2svg(url='temp_img.png', write_to=output_file_path) - # try: - # cairosvg.svg2svg(url=html_file_path, write_to=output_file_path) - # except Exception as e: - # print(f"Error converting image to SVG: {e}") - from weasyprint import HTML - HTML(filename=html_file_path).write_pdf(output_pdf_file_path) - from cairosvg import svg2svg - - # Convert PDF to SVG using cairosvg - svg2svg(url=output_pdf_file_path, write_to=output_file_path) - - - - - - elif(type == "img"): - #write a code to convert html to img - hti.screenshot(html_file=html_file_path,save_as='blue_page.png') - - -if __name__ == "__main__": - type = "svg" - # Input HTML file path - html_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/input.html" - output_pdf_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.pdf" - - # Output PDF file path - output_file_path = "/home/nandeesh/Desktop/demo_django/mypro/myapp/output.svg" - - convert_html_file_to_pdf(html_file_path, output_file_path, type, output_pdf_file_path) +import os +import requests +import sys + +TOKEN= str(sys.argv[1]) +OWNER= str(sys.argv[2]) +REPO= str(sys.argv[3]) +workflow_name= str(sys.argv[4]) +parameter1= str(sys.argv[5]) +parameter2 = str(sys.argv[6]) + +print( "the toke value is") +def trigger_workflow(workflow_name,parameter1,parameter2): + + headers = { + "Accept": "application/vnd.github.v3+json", + "Authorization": f"token {TOKEN}", + } + + data = { + "event_type": workflow_name, + "client_payload": { + 'parameter1': parameter1, + 'parameter2': parameter2 + } + } + + responsevalue=requests.post(f"https://api.github.com/repos/{OWNER}/{REPO}/dispatches",json=data,headers=headers) + print(responsevalue.content) + +trigger_workflow(workflow_name,parameter1,parameter2) \ No newline at end of file