LINUX.ORG.RU
ФорумTalks

Где лежат исходные тексты pastebin от Calculate?

 ,


0

3

Т.е. исходники вот этого сайта:
http://pastebin.calculate-linux.ru

Или они нигде не выложены, потому что это коммерческий дистрибутив, рассчитывающий на капиталистический заработок денег?

Вижу такие темы:
https://www.gentoo.ru/node/22714
https://www.gentoo.ru/node/27920

А исходные тексты не вижу.

Ранее по теме:
свой pastebin

Перемещено leave из web-development

★★★

Последнее исправление: Dimez (всего исправлений: 6)

Проблема моя в том, что я установил таки проект mdotshell/wastebin и у меня не наступило счастье. Теперь я хочу попробовать другой сервер для wgetpaste, но не знаю, какой.

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Проказница-Мартышка,
Осел,
Козел
Да косолапый Мишка
Затеяли сыграть Квартет.
Достали нот, баса, альта, две скрипки
И сели на лужок под липки,-
Пленять своим искусством свет.
Ударили в смычки, дерут, а толку нет.
«Стой, братцы, стой! - кричит Мартышка. -
Погодите!
Как музыке идти? Ведь вы не так сидите.
Ты с басом, Мишенька, садись против альта,
Я, прима, сяду против вторы;
Тогда пойдет уж музыка не та:
У нас запляшут лес и горы!»
Расселись, начали Квартет;
Он все-таки на лад нейдет.
«Постойте ж, я сыскал секрет?-
Кричит Осел,- мы, верно, уж поладим,
Коль рядом сядем».
Послушались Осла: уселись чинно в ряд;
А все-таки Квартет нейдет на лад.
Вот пуще прежнего пошли у них разборы
И споры,
Кому и как сидеть.
Случилось Соловью на шум их прилететь.
Тут с просьбой все к нему, чтоб их решить сомненье.
«Пожалуй,- говорят,- возьми на час терпенье,
Чтобы Квартет в порядок наш привесть:
И ноты есть у нас, и инструменты есть,
Скажи лишь, как нам сесть!» -
«Чтоб музыкантом быть, так надобно уменье
И уши ваших понежней,-
Им отвечает Соловей,-
А вы, друзья, как ни садитесь;
Всё в музыканты не годитесь
».

NickNotNick
()
Ответ на: комментарий от imb

«It’s written in Clojure»

Блин, а по-проще там чего-нибудь нет (на php, на ruby, на python)? Я пока собираюсь искать реализацию из Debain, потому что мне кажется что это наиболее опенсорсное сообщество, наиболее приверженное опенсорсным принципам.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

paste.debian.net - это perl, https://github.com/formorer/paste.pl
не в списке

https://github.com/topics/pastebin-service?l=php
https://github.com/topics/pastebin-service?l=python
https://github.com/topics/pastebin-service?l=ruby

На руби ничего нет, на питоне больше проектов, чем на php
самый звездатый - https://github.com/ptpb/pb

Интересно, есть ли где-нибудь поиск, который по имени ptpb/pb ищет пишет, какие есть пакеты в разных дистрибутивах?

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

пипон и монга? он застрелится такое счастье поддерживать, под задачу лучше уж грязненький похапэ или методом Лайнуса напейсать за выходные на том, что интересно

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Я установил ambozz/Paste - это самая звёздная паста на php.

Я был расстроен тем, что этот проект не следует стандартам кодирования GNU. Из-за того, что отсутствовали проверки, мне пришлось пересобирать PHP с USE=«+mysql +mysqli», а так же раскомментировать строчку ;extension=mysqli в файле /etc/php/apache2-php8.1/php.ini

Но даже после того, как оно начало пастить, выяснилось что там нет таких же классных фич, как у Calculate и других сервисов - нет подсветки синтаксиса, нет защиты от спама. И оно не работает при выключенном JavaScript, хотя ничто не мешало без него обойтись (т.е. включен - пользуемся, не включен - всё равно работаем, только с postback на сервер). А если надо ещё и картинки/скриншоты публиковать, тогда что?

Хотелось бы заметить, что мне как пользователю, не нужен ни mysql, ни знание строчек конфига, и по логам апача совершенно нет желания лазить, чтобы выяснить в чём было дело. Оно должно само-само.

Ещё мне не нравится, что URL такой длинный:
https://paste.local/paste.php?p=65304a5e8f434
вполне было бы достаточно:
https://paste.local/34
(не так и много у меня там разных паст)

Нет инструкции на тему того, как настроить wgetpaste для работы с этим движком. И это проблема, придётся читать этот длинный bash-скрипт, который является телом утилиты wgetpaste.

Пока попробую прикрутить сюда GNU Autotools с GNU Web, потому что нельзя терпеть такого вопиющего неуважения к Столлману. А после всё-таки написать .ebuild. Но лучше бы, конечно, найти движок, работающий с postgresql (переписывать этот - не вариант). Зачем мне две СУБД на одном сервере?

Есть ещё какой-то другой проект на php - RaJiska/BeyondPaste. Он использует
PDO (расширение PHP, которое обеспечивает универсальный доступ к данным из PHP, предоставляет простой и согласованный интерфейс для работы с различными базами данных, включая MySQL, PostgreSQL, SQLite и другими).
И там есть хайлайтинг. Но мне просто страшно его ставить (придётся для этого ведь изучать как конфигурируется это PDO).

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Ещё у этих паст не меняются тексты элемента <title>, и из-за этого разные пасты выглядят одинаково в закладках браузера.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

pdo чаще всего ставится пакетом и включается автоматически в наше время кмк, ну край еще найти php.ini и раскоментить там экстеншон как тут: https://www.php.net/manual/en/pdo.installation.php

я не спорю что это все беспонтовое гонево, но абсолютно такая же или даже еще хуже ситуация с остальными скриптовыми языками. Я как-то искал веб интерфейс для memcache/couchbase и пхпшный продукт кажется единственный который у меня хотя-бы после пинков завелся, а остальные валились где-то на зависимостях или сборке/запуске. Так устроен мир быстрого и легкого программирования, что результат превращается в тыкву через год-два.

Syncro ★★★★★
()
Ответ на: комментарий от Shushundr

Попробовал запустить:

/var/www/localhost/htdocs # git clone https://github.com/RaJiska/BeyondPaste.git .
Cloning into '.'...
remote: Enumerating objects: 772, done.
remote: Total 772 (delta 0), reused 0 (delta 0), pack-reused 772
Receiving objects: 100% (772/772), 1.39 MiB | 4.29 MiB/s, done.
Resolving deltas: 100% (289/289), done.

PHP Fatal error: Uncaught Error: Class «PDO» not found in /var/www/localhost/htdocs/classes/Database.php:3\n Stack trace:\n #0 /var/www/localhost/htdocs/index.php(5): require_once()\n #1 {main}\n thrown in /var/www/localhost/htdocs/classes/Database.php on line 3

Добавил флаг USE=«pdo»

# grep pdo   profiles/x86_64/package.use/php 
dev-lang/php apache2 mysql mysqli pdo

Перемёржил php:

emerge dev-lang/php

Включил расширение:

# grep -i "pdo" /etc/php/apache2-php8.1/php.ini 
;extension=pdo_firebird
;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
[Pdo]
; https://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict
[Pdo_mysql]
pdo_mysql.default_socket=
; If disabled, all PHPDoc comments are dropped from the code to reduce the

sed -i 's/;extension=pdo_pgsql/extension=pdo_pgsql/g' /etc/php/apache2-php8.1/php.ini

Перезапустил apache

systemctl restart apache2

PHP Warning: fopen(log/database.txt): Failed to open stream: Permission denied in /var/www/localhost/htdocs/classes/Database.php on line 67 Could not connect to the database

# sed -n '65,69p' /var/www/localhost/htdocs/classes/Database.php
		{
			$exists = (file_exists("log/" . $this->config['db']['logfile']));
			if (!($this->log_fd = fopen("log/" . $this->config['db']['logfile'], 'a')))
				return false;
			if (!$exists)
chown -R apache:apache /var/www/localhost/htdocs
systemctl restart apache2
# cat log/database.txt 

[CONNECTION] - 10/21/2023 05:53:58 pm - SQLSTATE[HY000] [1045] Access denied for user ‘beyondpaste_user’@‘localhost’ (using password: YES)

Недостатком проекта является отсутствие документации по настройке соединения с базой данных. Где мне менять этого пользователя и его пароль. Я, конечно, догадаюсь, наверное, но они могли бы это написать в документации.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Базу создавал так:

# psql -U postgres -c "create database beyondpaste;"
CREATE DATABASE
# psql -U postgres -c "create user beyondpaste_user;"
CREATE ROLE
# psql -U postgres -c "ALTER USER beyondpaste_user WITH PASSWORD 'passwd';"
ALTER ROLE
# psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE beyondpaste TO beyondpaste_user WITH GRANT OPTION;"
GRANT
# psql -U postgres -d beyondpaste -c "GRANT ALL PRIVILEGES ON SCHEMA public TO beyondpaste_user WITH GRANT OPTION;"
GRANT

Попробовал залить скрипт вручную, но он не соответствует стандартам SQL:

# PGPASSWORD="passwd" psql -U beyondpaste_user -d beyondpaste <./sql/structure.sql
ERROR:  syntax error at or near "("
LINE 2:     id INT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
                  ^
ERROR:  syntax error at or near "("
LINE 2:     id INT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
                  ^

Оказывается, в этой программе зашито подключение к mysql.

«PDO определяет, к какой базе данных подключаться, на основе предоставленного Data Source Name (DSN). DSN - это строка, которая содержит информацию, необходимую для подключения к базе данных. В случае с PostgreSQL, DSN начинается с pgsql:, а в случае с MySQL - с mysql:. Это позволяет PDO определить, к какой базе данных подключаться, просто проверяя начало DSN.»

Это было подло со стороны авторов программы - использовать PDO, но при этом всё испортить.

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 4)
Ответ на: комментарий от Shushundr

Вот так работает:

# mysql -e "CREATE DATABASE beyondpaste;"
# mysql -e "GRANT ALL PRIVILEGES ON beyondpaste.* TO 'beyondpaste_user'@'localhost' IDENTIFIED BY 'passwd';"
# mysql -e "FLUSH PRIVILEGES;"
mysql -D beyondpaste <./sql/structure.sql

Но снова нет счастья. Хочу движок под postgresql. Не переписывать же мне скрипт для создания таблиц руками?

UPD: ага!!! не работает:

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column beyondpaste.paste.autodestroy at row 1

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column beyondpaste.paste.deleted at row 1

То есть, переписывать надо не только sql-скрипт, но ещё и код программы, потому что в нём баги. Не проще ли просто отказаться от использования этой неработающей программы?

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 3)

Посмотрел на репозиторий:
https://github.com/armendzz/PasteBinLaravel

просто не понимаю, как его запускать. Может быть это и ясно тем, кто знает, как работает Laravel (и что это вообще такое), но мне не ясно.

Говорят, что сначала надо установить laravel, но я не вижу .ebuild-файла с таким названием.

А устанавливать его через dev-php/composer это не Gentoo-Way.

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 3)
4 февраля 2024 г.

https://github.com/topics/pastebin-service?l=java

12* - https://github.com/kennedyoliveira/ultimate-pastebin-intellij-plugin
(это, очевидно, мимо, потому что нужен сайт, а не плагин к IDE)
5* - https://github.com/EXL/CodePolyglot
(здесь непонятно зачем нужна GraalVM и что это вообще такое)
4* - https://github.com/zakirhussainb/snipdata
(проект низкого качества - пустые тесты, написан под винду, нет документации, требует какого-то специфического деплоймента с .yml)
0* - https://github.com/fauu/NotPetStore GPL-3.0 license, archived/readonly by the owner on 2021-04-21
работа через JDBC похоже так и не сделана (in-memory repository (almost complete))

«Название для вашего проекта-клона pastebin на Java может быть «JavaPasteEngine». Это название простое и легко запоминается, а также отражает основную функцию вашего проекта - обработку и хранение кода на языке Java»

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)