mirror of
https://github.com/projekteuler/projekteuler.git
synced 2025-12-10 08:46:41 +01:00
closes #28 - adding a .py script to download the original problems texts, saving it localy as a json and displaying it in the translation view
This commit is contained in:
parent
e791d2527e
commit
4b8a8856de
20
app/controllers/euler_problem_texts.py
Executable file
20
app/controllers/euler_problem_texts.py
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
import requests, json
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
URL = "https://projecteuler.net/problem={}"
|
||||||
|
|
||||||
|
def getBS(url):
|
||||||
|
r = requests.get(url)
|
||||||
|
data = r.text
|
||||||
|
return BeautifulSoup(data,"lxml")
|
||||||
|
|
||||||
|
problems = {}
|
||||||
|
for i in range(1, 701):
|
||||||
|
print(i)
|
||||||
|
problem = getBS(URL.format(i))
|
||||||
|
problem_tag = problem.find("div", {"class":"problem_content"})
|
||||||
|
problem_title = problem.find("h2").text
|
||||||
|
problem_html = str(problem_tag).replace("project/images/", "https://projecteuler.net/project/images/")
|
||||||
|
problems[i] = {"title":problem_title, "problem":problem_html}
|
||||||
|
|
||||||
|
open("problems.json", "w"). write(json.dumps(problems, ensure_ascii=False, indent=4))
|
||||||
@ -1,9 +1,15 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
class TranslationsController < ApplicationController
|
class TranslationsController < ApplicationController
|
||||||
before_action :set_problem, only: [:new, :create]
|
before_action :set_problem, only: [:new, :create]
|
||||||
before_action :set_accept, only: [:create]
|
before_action :set_accept, only: [:create]
|
||||||
|
|
||||||
# GET /translations/new
|
# GET /translations/new
|
||||||
def new
|
def new
|
||||||
|
file = File.open "app/controllers/problems.json"
|
||||||
|
problem_json = JSON.load file
|
||||||
|
@original_title = problem_json[@problem.id.to_s]["title"]
|
||||||
|
@original_problem = problem_json[@problem.id.to_s]["problem"]
|
||||||
@translation = @problem.translations.build
|
@translation = @problem.translations.build
|
||||||
if @problem.is_translated?
|
if @problem.is_translated?
|
||||||
@translation.title = @problem.translation.title
|
@translation.title = @problem.translation.title
|
||||||
|
|||||||
@ -4,15 +4,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class='card-body'>
|
<div class='card-body'>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Als Basis für jede Übersetzung dient der HTML-Quelltext von projecteuler.net.
|
<li>Als Basis für jede Übersetzung dient der <%= link_to "Text von projecteuler.net", @problem.original_url, target: '_blank' %>.</li>
|
||||||
Dazu gehen Sie auf die entsprechende <%= link_to "Problem-Seite", @problem.original_url, target: '_blank' %>.
|
|
||||||
Dort öffnen Sie den HTML-Quelltext (z.B. mit <code>Strg+U</code> in Firefox) und kopieren alles zwischen <code><div class="problem_content" role="problem"></code> und <code></div></code>.
|
|
||||||
Diesen Quelltext fügen Sie auf dieser Seite ein.
|
|
||||||
In Zukunft sollen diese Schritte automatisch passieren.</li>
|
|
||||||
<li>Der HTML-Quelltext sollte im Allgemeinen unverändert bleiben.</li>
|
<li>Der HTML-Quelltext sollte im Allgemeinen unverändert bleiben.</li>
|
||||||
<li>Querverweise zu anderen Problemen sollten in der Form <code>/problem=??</code> erfolgen.</li>
|
<li>Querverweise zu anderen Problemen sollten in der Form <code>/problem=??</code> erfolgen.</li>
|
||||||
<li>Wenn Grafiken oder Dateien verwendet werden, sollte die URL <code>https://projecteuler.net/...</code> verwendet werden.</li>
|
<li>Wenn Grafiken oder Dateien verwendet werden, sollte die URL <code>https://projecteuler.net/...</code> verwendet werden.</li>
|
||||||
<li>Die Sie-Form benutzen.</li>
|
<li>Die Sie-Form benutzen.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card mt-3 mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
Originaler Text der Aufgabe <i>"<%= @original_title %>"<i>
|
||||||
|
</div>
|
||||||
|
<div class='card-body'>
|
||||||
|
<%= raw(@original_problem) %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
Loading…
Reference in New Issue
Block a user