Новый (для меня) pastebin (текст и картинки) с полным API - работает с curl тоже
Перепосщивать хау-ту не буду. По ссылке прямо все четко написано, с примерами.
Перепосщивать хау-ту не буду. По ссылке прямо все четко написано, с примерами.
Не являюсь админом ни телефонии, ни этой морды FreePBX. Как она устроена - тоже не знаю.
Хочется автоматизировать перевод номеров телефонов.
Есть какое-то API? или воспользоваться стандартными http-запросами? я посмотрел, там эта форма отсылает на сервер данные в виде php-массивов... меня это страшит.
Может, сталкивался кто?
Автоматизирую возвраты по кассе.
В доках пишут, что нужно делать авторизацию:
curl https://payment.yandex.net/api/v3/refunds \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{
"amount": {
"value": "2.00",
"currency": "RUB"
},
"payment_id": "215d8da0-000f-50be-b000-0003308c89be"
}'
Я ставлю заголовок Authorization в значение "Basic "+Base64(КассаИД+":"+Секрет), но получаю в ответ json с ошибкой «Illegal password format».
Если передать левый пароль (секрет), то пишет то же самое.
Где собака порылась?
Есть сервис https://baza-otvetov.ru, на котором есть форма викторины https://baza-otvetov.ru/quiz
Сервер отдает на запрос к https://baza-otvetov.ru/quiz страницу html, а после загрузки выполняется следующий javascript-код
<script type="text/javascript">
function ask(){
$.ajax({
cache: false,
type: "POST",
url: "/quiz/ask",
data: {
},
beforeSend: function(){
$(".check").html('<div style="text-align:center;"><img src="/design/images/ajaxloader.gif" /></div>');
},
success: function(html){
$(".check").html(html);
},
error: function(){
$(".check").html('Произошла ошибка, попробуйте обновить страницу.');
}
});
}
$(document).ready(function () {
ask();
});
</script>
Т.е. вопрос с ответами он подгружает POST-запросом к https://baza-otvetov.ru/quiz/ask. Так вот, я никак не могу сэмулировать этот ПОСТ-запрос.
@SpringBootApplication
public class PostrequestApplication implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(PostrequestApplication.class);
private static final String USER_AGENT = "Mozilla/5.0";
static final String COOKIES_HEADER = "Set-Cookie";
static java.net.CookieManager msCookieManager = new java.net.CookieManager();
public static void main(String[] args) {
SpringApplication.run(PostrequestApplication.class, args);
}
@Override
public void run(String... strings) throws Exception {
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>> START <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
HttpsURLConnection get = sendGet("https://baza-otvetov.ru/quiz");
HttpsURLConnection post = preparePostConnection("https://baza-otvetov.ru/quiz/ask", get);
sendPost(post);
}
private HttpsURLConnection preparePostConnection(String url, HttpsURLConnection get) throws Exception {
System.out.println("\nGET RESPONSE HEADERS");
Map<String, List<String>> map = get.getHeaderFields();
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
}
System.out.println("POST: "+url);
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setRequestMethod("POST");
//set cookies
Map<String, List<String>> headerFields = get.getHeaderFields();
List<String> cookiesHeader = headerFields.get(COOKIES_HEADER);
if (cookiesHeader != null) {
for (String cookie : cookiesHeader) {
msCookieManager.getCookieStore().add(null, HttpCookie.parse(cookie).get(0));
}
}
if (msCookieManager.getCookieStore().getCookies().size() > 0) {
// While joining the Cookies, use ',' or ';' as needed. Most of the servers are using ';'
con.setRequestProperty("Cookie", join(msCookieManager.getCookieStore().getCookies(), ";"));
}
//add reuqest header
con.setRequestProperty("content-length", "0");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7");
//con.setRequestProperty("Access-Control-Allow-Origin", "*");
//con.setRequestProperty("Access-Control-Allow-Credentials", "true");
con.setRequestProperty("origin", "https://baza-otvetov.ru");
con.setRequestProperty("referer", "https://baza-otvetov.ru/quiz");
System.out.println("\nPOST REQUEST HEADERS");
Map<String, List<String>> map_post = con.getHeaderFields();
for (Map.Entry<String, List<String>> entry : map_post.entrySet()) {
System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
}
return con;
}
private HttpsURLConnection sendGet(String url) throws Exception {
System.out.println("GET: "+url);
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
return con;
}
private void sendPost(HttpsURLConnection con) throws Exception {
// Send post request
con.setDoOutput(true);
int responseCode = con.getResponseCode();
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println("RESPONSE: "+response.toString());
}
public static String join(List<HttpCookie> var0, String var1) {
StringBuffer var2 = new StringBuffer();
for(Iterator var3 = var0.iterator(); var3.hasNext(); var2.append(var3.next().toString())) {
if (var2.length() != 0) {
var2.append(var1);
}
}
return var2.toString();
}
}
Все равно сервер ничего не возвращает.
Как побороть CORS?
Извините за пикабу, но https://pikabu.ru/story/kogda_quotvodyankiquot_byili_molodyimi_5648287
Думаю, тут есть, кому захочется обсудить.
Онлайн-митап. Ссылка: https://www.youtube.com/watch?v=kAz9sZdisnE
Начало через 10 минут.
Details
Подпишитесь на канал: https://www.youtube.com/c/RuPostgres — не пропустите трансляцию! (для этого есть «колокольчик») Там же будет чат для общения!
Очень глубокое погружение в очень продвинутый SQL.
В этот раз будет нечто ещё более безумное в плане онлaйна, чем раньше! Гигантский телемост Австралия — Калифорния — Германия — Россия %)
Подробнее о содержании митапа.
Не всегда проблемы производительности базы можно решить изменением настроек или простым созданием индексов. Когда эти простые способы не дают результата, в дело вступают более сложные техники, часто требующие переписывания запросов и тому подобной «дрессировки» оптимизатора.
С точки зрения разработчиков это отдает чёрной магией и выглядит очень сложным хакингом, однако, если разобраться в базовых принципах и научиться их комбинировать, можно добиться улучшения производительности на порядки.
Сегодняшний доклад посвещен нетривиальному использованию индексов для ускорения запросов.
Очень много внимания будет уделено обьяснению, как именно тот или иной приём работает и почему.
1. Использование INDEX ONLY SCAN для ускорения offset запросов
2. Использование индекса по (f1) для ускорения запросов ORDER BY f1, f2 LIMIT N
3. Использование индекса по (f2, f1) для ускорения запросов ORDER BY f1, f2 LIMIT N
В ближайшие месяцы будет продолжение этого доклада, посвящённое другим похожим задачам и проблемам.
Просто поделюсь ресурсом, возможно, кому-то будет полезен.
ЗЫ. для любителей оправданий на тему «причем тут линукс»: линукс - это прекрасно, и этот ресурс тоже прекрасен.
Объясните на пальцах неадмину.
Оно типа через UDP подключиться-таки смогло, может быть нестабильно, но ладно. Почему траффик не идет через ВПН-сервер?
Хочу картинки отдавать в svg. Но в беке организовал безличную отдачу файлового контента так:
@GetMapping(value = "/{fileName:.+}", produces = APPLICATION_OCTET_STREAM_VALUE)
@ExceptionHandler(value = FileNotFoundException.class)
public @ResponseBody
HttpEntity<byte[]> getFileById(@PathVariable String fileName, final HttpServletResponse response) throws IOException {
StoredFile file = this.storageService.getFileByName(fileName);
if (file == null) {
response.sendError(404, String.format("File %s not found", fileName));
return null;
}
byte[] content;
try {
content = this.storageService.getFileContent(file.getPath());
} catch (IOException e) {
e.printStackTrace();
if (this.userService.isCurrentUserAdmin()) {
response.sendError(404, String.format("File %s (%s) not found", file.getName(), file.getPath()));
} else {
response.sendError(404, String.format("File %s not found", file.getName()));
}
return null;
}
HttpHeaders header = new HttpHeaders();
header.setContentType(APPLICATION_OCTET_STREAM);
header.set("Content-Disposition", "inline; filename=" + file.getName());
header.setContentLength(file.getSize());
return new HttpEntity<byte[]>(content, header);
}
Когда вставляю ссыль на картинку, которую загрузил предварительно, так
<img class="skill-icon" src="/files/123" alt="Postgresql">
то она не показывается в виде картинки от слова совсем.
Если я вставляю содержимое файла svg как html, то все ок.
Как быть? Поможет ли явное указание типа контента при отдаче файла?
Использую
compile('ch.qos.logback:logback-classic')
compile('org.slf4j:slf4j-api')
compile('org.apache.commons:commons-lang3')
логгер настроен так (файл logback.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
<contextName>VoidForum</contextName>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n
</pattern>
</encoder>
</appender>
<jmxConfigurator />
<root level="WARN">
<appender-ref ref="STDOUT" />
</root>
<logger name="ru.bvn13.voidforum" level="ALL">
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.hibernate.SQL" level="WARN">
<appender-ref ref="STDOUT" />
</logger>
<!--<logger name="org.hibernate.type" level="TRACE">-->
<!--<appender-ref ref="STDOUT" />-->
<!--</logger>-->
<logger name="org.springframework.web" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
<logger name="ru.bvn13.voidforum.controllers" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
<logger name="ru.bvn13.voidforum.admin.controllers" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
При этом каждая строчка вывода лога задваивается. Например:
2017-12-11 22:42:15.507 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'servletConfigInitParams' with lowest search precedence
2017-12-11 22:42:15.507 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'servletConfigInitParams' with lowest search precedence
2017-12-11 22:42:15.511 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'servletContextInitParams' with lowest search precedence
2017-12-11 22:42:15.511 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'servletContextInitParams' with lowest search precedence
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Initialized StandardServletEnvironment with PropertySources [StubPropertySource {name='servletConfigInitParams'}, StubPropertySource {name='servletContextInitParams'}, MapPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}]
2017-12-11 22:42:15.512 [main] DEBUG o.s.w.c.s.StandardServletEnvironment - Initialized StandardServletEnvironment with PropertySources [StubPropertySource {name='servletConfigInitParams'}, StubPropertySource {name='servletContextInitParams'}, MapPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}]
2017-12-11 22:42:15.593 [main] INFO ru.bvn13.voidforum.Application - Starting Application on bvn13-book with PID 20504 (C:\dev\my\VoidForum\out\production\classes started by bvn13 in C:\dev\my\VoidForum)
2017-12-11 22:42:15.593 [main] INFO ru.bvn13.voidforum.Application - Starting Application on bvn13-book with PID 20504 (C:\dev\my\VoidForum\out\production\classes started by bvn13 in C:\dev\my\VoidForum)
2017-12-11 22:42:15.594 [main] DEBUG ru.bvn13.voidforum.Application - Running with Spring Boot v1.5.10.BUILD-SNAPSHOT, Spring v4.3.13.RELEASE
2017-12-11 22:42:15.594 [main] DEBUG ru.bvn13.voidforum.Application - Running with Spring Boot v1.5.10.BUILD-SNAPSHOT, Spring v4.3.13.RELEASE
Где напортачил? Почему так происходит?
Никогда не подумал бы, что буду покупать телевизор, ибо зомбоящик как таковой в доме не держу.
Но просмотр скаченного и онлайн на ноуте уже поднадоел из-за невозможности одновременного конпеляния ядра использования ноута по его первостепенному предназначению.
Поэтому прошу совета, какие лучше, какой тип экрана, какая начинка, марка, модель, диагональ экрана, на что обратить внимание? Можно прямо ссылками на какой-нибудь ситилинк.
Из необходимых: вайфай/лан надо, и возможность смотреть онлайн/по сети.
Как их подружить?
В настройках ИДЕА в разделе GitHub выбираю Token, генерировать, тест - все ок.
Попытка прочитать репозиторий - хер там, Host key verification failed.
Какого черта?
Есть проект на С#, работает уже долго на винде. Но потребовалось перенести временно на линукс, чтобы спокойно переписать на чем-то православном.
В проекте используется соединение к базе MS Access через
OleDbConnection mdbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;" + @"data source = f_base.mdb");
Как это портировать? В убунте, естественно, не находит драйвер подключения.
Есть какой-то временный костыль? Что посоветуете?
ЗЫ. Викинуть, забыть, забить, послать - это все понятино, но надо. Переписать - это тоже понятно, но время.
Сабж. На торренты хожу через friGate расширение. Вчера обнаружил, что торренты не качаются, хотя на рутрекере 14 пиров показано. Сегодня утром на работе за 5 минут все скачалось.
Провайдер онлайм (Москва), такие дела.
У меня в проекте не видятся последние билды из Мавена. WTF?
Вот есть версия 0.28.8 библы: https://search.maven.org/#artifactdetails|com.vladsch.flexmark|flexmark-html-...
А у меня только 0.27.0 доступна. Как быть? Нужно обновить?
repositories {
mavenLocal()
jcenter()
mavenCentral()
maven { url 'http://repo.spring.io/libs-release' }
maven { url "http://repo.springsource.org/repo" }
}
Ну, к примеру есть
TABLE Products
1. id
2. name
TABLE SearchParams
1. name_query
мне нужен запрос
SELECT p.name
FROM Products AS p
LEFT JOIN SearchParams AS s
ON p.name LIKE concat('%', p.name, '%')
WHERE s.name IS NULL
Но Hibernate выдает ошибку при инициализации всего этого:
org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join!
Ему нужна связь? Как быть?
По каким признакам запроса можно определить, что стучится бот? Яндекс/Гугл/Еще кто. Может есть какие-то списки юзер-агентов? Но я где-то слышал, что яндекс-гугл умеет ходить с чужими юзер-агентами.
Дома шуршит ArchLinux в качестве сервачка на стареньком ноуте.
Добавлял я блог как systemd-unit путем симлинка из /home/bvn13/dev/myblog.service в /etc/systemd/system/myblog.service, как говорила инструкция на арчевики. Все работало, пока я не захотел перезагрузиться.
И вот после перезагрузки я не смог удаленно по ssh зайти. Благо, автологин стоит и тимвувер в автозапуске. И что же я вижу? а sshd не запущен. И блог мой тоже. Делаю # systemctl start myblog.service, а оно говорит, мол, нет такого юнита! КАК?! Делаю # systemctl daemons-reload, и - о, чудо! - мой юнит найден и запущен. Вслед я запустил sshd.
Это что же, получается, я не туда свой юнит засунул? Или это-таки systemd виноват?
Rasa NLU (Natural Language Understanding) is a tool for understanding what is being said in short pieces of text. For example, taking a short message like:
«I'm looking for a Mexican restaurant in the center of town»
And returning structured data like:
intent: search_restaurant
entities:
- cuisine : Mexican
- location : center
Интересная либа. Судя по описанию, поднимается как в докере, так и нативно, общение с библиотекой посредством http-запросов.
Недавно в твиттере встретил новость про сабж, думаю, к чему бы ее такому прикрутить.
| ← назад | следующие → |