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
|
||||
before_action :set_problem, only: [:new, :create]
|
||||
before_action :set_accept, only: [:create]
|
||||
|
||||
# GET /translations/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
|
||||
if @problem.is_translated?
|
||||
@translation.title = @problem.translation.title
|
||||
|
||||
@ -4,11 +4,7 @@
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<ul>
|
||||
<li>Als Basis für jede Übersetzung dient der HTML-Quelltext von projecteuler.net.
|
||||
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>Als Basis für jede Übersetzung dient der <%= link_to "Text von projecteuler.net", @problem.original_url, target: '_blank' %>.</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>Wenn Grafiken oder Dateien verwendet werden, sollte die URL <code>https://projecteuler.net/...</code> verwendet werden.</li>
|
||||
@ -16,3 +12,11 @@
|
||||
</ul>
|
||||
</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>
|
||||
Loading…
Reference in New Issue
Block a user