Add https request error handling
This commit is contained in:
Killer069 2021-09-13 11:15:21 +05:30 committed by GitHub
commit ec5391757b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 11 deletions

View File

@ -180,7 +180,7 @@ export class Stream {
"range" : `bytes=${this.bytes_count}-${end >= this.content_length ? '' : end}`
}
})
if(Number(stream.statusCode) >= 400){
if(Number(stream.statusCode) >= 400 && this.bytes_count === 0){
this.cleanup()
await this.retry()
this.loop()

View File

@ -1,6 +1,5 @@
import { video_info } from "."
import { LiveStreaming, Stream } from "./classes/LiveStream"
import { request } from "./utils/request"
export enum StreamType{
Arbitrary = 'arbitrary',

View File

@ -1,5 +1,5 @@
import https, { RequestOptions } from 'https'
import {IncomingMessage } from 'http'
import { IncomingMessage } from 'http'
import { URL } from 'url'
interface RequestOpts extends RequestOptions{
@ -10,11 +10,11 @@ interface RequestOpts extends RequestOptions{
async function https_getter(req_url : string, options : RequestOpts = {}): Promise<IncomingMessage>{
return new Promise((resolve, reject) => {
let s = new URL(req_url)
if(!options.method) options.method = "GET"
options.method ??= "GET"
let req_options : RequestOptions = {
host : s.hostname,
path : s.pathname + s.search,
headers : (options.headers) ? options.headers : {},
headers : options.headers ?? {},
method : options.method
}
@ -44,7 +44,6 @@ export async function request(url : string, options? : RequestOpts): Promise<str
export async function request_stream(url : string, options? : RequestOpts): Promise<IncomingMessage>{
return new Promise(async (resolve, reject) => {
let data = ''
let res = await https_getter(url, options)
if(Number(res.statusCode) >= 300 && Number(res.statusCode) < 400){
res = await https_getter(res.headers.location as string, options)