From be50c68340ee923da97756bb5cf95b6199703c4c Mon Sep 17 00:00:00 2001 From: Bobby Date: Mon, 27 Mar 2023 21:20:38 -0400 Subject: Socialify available in fun stuff --- blog/urls.py | 1 + blog/views.py | 31 +++++++++++ ignis/urls.py | 5 +- ignis/views.py | 20 +++++++ templates/blog/partials/sidebar.html | 10 ++++ templates/blog/socialify.html | 103 +++++++++++++++++++++++++++++++++++ 6 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 templates/blog/socialify.html diff --git a/blog/urls.py b/blog/urls.py index 1719f124..0910484a 100644 --- a/blog/urls.py +++ b/blog/urls.py @@ -19,4 +19,5 @@ urlpatterns = [ path('categories/', views.articles, name='category_posts'), path('~', views.user_activity, name='user_activity'), path('policy', views.policy, name='policy'), + path('socialify', views.socialify, name='socialify'), ] diff --git a/blog/views.py b/blog/views.py index 5e0c3885..1936011d 100644 --- a/blog/views.py +++ b/blog/views.py @@ -303,3 +303,34 @@ def categories(request): def policy(request): return render(request, 'blog/site_policy.html', {'title': 'Site Policy'}) + +def socialify(request): + url = request.GET.get('url') if request.GET.get('url') else None + if url: + # convert Github URL to repo owner/name + if 'github.com' in url: + url = url.split('github.com/')[1] + url = url.split('/') + url = url[0] + '/' + url[1] + socialify_options = { + 'theme': 'Dark' if not request.GET.get('theme') else request.GET.get('theme'), + 'font': 'Inter' if not request.GET.get('font') else request.GET.get('font'), + 'description': 0 if not request.GET.get('description') else request.GET.get('description'), + 'forks': 0 if not request.GET.get('forks') else request.GET.get('forks'), + 'issues': 0 if not request.GET.get('issues') else request.GET.get('issues'), + 'language_1': 0 if not request.GET.get('language_1') else request.GET.get('language_1'), + 'language_2': 0 if not request.GET.get('language_2') else request.GET.get('language_2'), + 'name': 0 if not request.GET.get('name') else request.GET.get('name'), + 'owner': 1 if not request.GET.get('owner') else request.GET.get('owner'), + 'stargazers': 0 if not request.GET.get('stargazers') else request.GET.get('stargazers'), + 'pulls': 0 if not request.GET.get('pulls') else request.GET.get('pulls'), + 'pattern': 'Plus' if not request.GET.get('pattern') else request.GET.get('pattern'), + } + + for key, value in socialify_options.items(): + if value == 'on': + socialify_options[key] = 1 + elif value == 'off': + socialify_options[key] = 0 + + return render(request, 'blog/socialify.html', {'title': 'Socialify', 'options': socialify_options, 'url': url}) diff --git a/ignis/urls.py b/ignis/urls.py index 9cea0ad2..13cda935 100644 --- a/ignis/urls.py +++ b/ignis/urls.py @@ -9,5 +9,8 @@ urlpatterns = [ path('/image//', views.get_image, name='get_image'), path('/cover/', views.cover_image, name='cover_image'), path('/captcha/', views.captcha_image, name='captcha_image'), - path('/screenshot', views.get_screenshot, name='screenshot') + path('/screenshot', views.get_screenshot, name='screenshot'), + path('/socialify', views.socialify, name='socialify'), +# def socialify(request, repo, theme, font, pattern, name, description, language_1, language_2, stargazers, forks, issues, pulls): + ] diff --git a/ignis/views.py b/ignis/views.py index 965e6498..dbf01212 100644 --- a/ignis/views.py +++ b/ignis/views.py @@ -207,3 +207,23 @@ def get_screenshot(request): response['Pragma'] = 'no-cache' response['Expires'] = '0' return response + +def socialify(request): + repo = request.GET.get('repo') + theme = request.GET.get('theme') + font = request.GET.get('font') + pattern = request.GET.get('pattern') + name = request.GET.get('name') + description = request.GET.get('description') + language_1 = request.GET.get('language_1') + language_2 = request.GET.get('language_2') + stargazers = request.GET.get('stargazers') + forks = request.GET.get('forks') + issues = request.GET.get('issues') + pulls = request.GET.get('pulls') + + url = 'https://socialify.thatcomputerscientist.com/{}/png?description={}&font={}&forks={}&issues={}&language={}&language2={}&name={}&owner=1&pattern={}&pulls={}&stargazers={}&theme={}'.format(repo, description, font, forks, issues, language_1, language_2, name, pattern, pulls, stargazers, theme) + + print(url) + image = requests.get(url).content + return HttpResponse(image, content_type='image/png') diff --git a/templates/blog/partials/sidebar.html b/templates/blog/partials/sidebar.html index eb343898..dd9f8828 100644 --- a/templates/blog/partials/sidebar.html +++ b/templates/blog/partials/sidebar.html @@ -319,5 +319,15 @@ +
  • + + Socialify + + + + Socialify + + +
  • diff --git a/templates/blog/socialify.html b/templates/blog/socialify.html new file mode 100644 index 00000000..872fdf8e --- /dev/null +++ b/templates/blog/socialify.html @@ -0,0 +1,103 @@ +{% extends 'blog/partials/base.html' %} {% block content %} +

    Socialify

    +{% load static %} +{% if url %} +

    + Socialify +

    + +{% else %} +

    Socialify +

    +{% endif %} +
    +

    Socialify is a image service that generates header images for your GitHub README.md files. Go ahead and try putting your GitHub repository URL in the input box below. A full React app is also available at https://socialify.thatcomputerscientist.com. +

    +
    +
    +
    +
    +

    + Repository URL: + + + + +

    +

    + Theme: + + +       + Font: + + +

    +

    + Background Pattern: + + +

    +

    + + +    + + +    + + +    + + +    + + +

    + + +    + + +    + + +    + + +

    +

    + + {% if url %} + Download Image + {% endif %} +

    +
    +{% if url %} +

    For additional download options,view this image on Socialify.

    +{% endif %} + +{% endblock %} + -- cgit v1.2.3